From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f74.google.com (mail-wm1-f74.google.com [209.85.128.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C7B01FDA7B for ; Mon, 27 Jan 2025 10:34:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.74 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737974071; cv=none; b=PNDsA2+C74jGN6CmWgZCitYkRFUk511VDfqasvjGJYVHNds2KghXXu/KU6cEGFYmkQjh7V0ayFHbvMfqk6D51DLLYxxlyuuN7+iGaUkEeByoNzof0Dkxn9Gp6qJFkAz8rCPi/fATenaAaWny5LYxRNk7fX/2bOpwWTksP719Mvw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737974071; c=relaxed/simple; bh=6LmjhGfsMYkh/JPlUyVo2tvxkQci+7eMMYTtJ6n8Vd4=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=rpiuWYZNiQQSq/ap/iw8rHKC6R/0gYY/BXp52HhEx2a0lld1U9ZhLbyWDPXCyV9z8hV8ZFIRnR8/pFiJqSugOhkoSgaf1meNbT2mJ02by5g3ag4kzs/WyiX6adGJttWr0XcOk2d56q1/6RMRHjt1yDnYTkrTaTqNVoTB7TlqM14= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=raFyKjyW; arc=none smtp.client-ip=209.85.128.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="raFyKjyW" Received: by mail-wm1-f74.google.com with SMTP id 5b1f17b1804b1-4362b9c15d8so20536555e9.3 for ; Mon, 27 Jan 2025 02:34:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1737974068; x=1738578868; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=XRzn2SZCYyK3M1JWCa38omHgy1jSYILnd3vTeuU6Q+Y=; b=raFyKjyWWTD0GTZ3TBy2Q7f/Txr7hVRBLYIj3ZUBR+7mmIKChipsDVu1CJKLqLJkAu Wv8Usirm1UALaF02AzCr5TS6zNnw/4OoC8KepAFomxSFleeoEFbpWPd7letI6f8IcRba WF2Kau2Nib984Emp8VNf3Pph5+nVd6nlASF3qrbU1pwtt+mEE0ffH/2WJBWzxqtTGdL5 c5Xl08v9efxeBtWWJDig+r+Sw8YP2shNDEhk0qjxZK7s5r1SK31MIk26MgPbCo+Fmd0P kB3aI/jWIvdHhsYGV8MqKxbGSIgWVqGGqGPh77IVnvD2wrtWJ6BcvAcrdnbNvPf6KwmW tnzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737974068; x=1738578868; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=XRzn2SZCYyK3M1JWCa38omHgy1jSYILnd3vTeuU6Q+Y=; b=MYYy0dOay5kBtCXUCepvdLvv+ZnwMzrULP1cWM2tp886frJGSpLNjJyzR+qhxXD0V6 GZOPiRexNrV20k5HBqBYW6hGx8bL6VZchDssGVlHzHnwm0Y3Dnnva3TtPcrRYihOREmd tQc4I9b5j1vmc5rPmipPLABM3BPmiq9ehT0bkCmluJdkxafpexyJIJ2K1YeY7hofzepf egGk1RaGUJrzhFnCqn5rNiGAjyXgmYcs/xEE94ANS8Rnqkv/lneBlBaeFC8MrTx5JSRu FEsZEkT/VBquuFiJI27n4lcC0PLPQiCmEFDePVQ34lrjqj08JZ0hEVQnhuOeIeRXm9KO 1s0A== X-Forwarded-Encrypted: i=1; AJvYcCXS2T26qWa3eZsuZwwsFsmtcrOmbQjTNdSM15UG/MDjHsprp6mRwIT7rImIJsHCGvs16HNFoYCY4UBCS0w=@vger.kernel.org X-Gm-Message-State: AOJu0YwMHAp6uyLsSty01Spae5Iuti+9YYe3AS4OptY+9TKSvScCfLLN 6I7ennMJi4OPpKAtN+yRgtDciFtKZf7HHrCsEWmp2y1Suq/eZDSD6TqAJgZ7VSH6pxMAFWHSLjF FfWlDYBHFyxqXgA== X-Google-Smtp-Source: AGHT+IELEQVEP+Pb7bAeMdz811t8gdKeaB389dmZSRnfJ9olS19Br8X7u3+e3kH8kX+Vo+7Ia3Qz+Twpk5XIt8A= X-Received: from wmej5.prod.google.com ([2002:a05:600c:42c5:b0:436:6fa7:621]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:8719:b0:434:9499:9e87 with SMTP id 5b1f17b1804b1-43891437217mr325816675e9.25.1737974067953; Mon, 27 Jan 2025 02:34:27 -0800 (PST) Date: Mon, 27 Jan 2025 10:33:57 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-B4-Tracking: v=1; b=H4sIABVhl2cC/2XMy27DIBCF4VeJWJeKGcDGXfU9oi64jB2k1lTgO o0iv3tI1EhJWZ4jff+ZFcqRCnvbnVmmNZaY5jr0y475g50n4jHUzVCgAgEd9z+5pMwdLUeimYN WjoLRA2HPKvrONMbfW3D/UfchliXl062/wvX9S6H+n1qBAxdmANmDspb0+5TS9EmvPn2xa2vFu 9cCEBqPXHBwqHyQfd+Babx89Nh4Wb21dnTB2BFUaLx69LLxqnrvRNcNJrhB+Se/bdsFaJzpNW0 BAAA= X-Developer-Key: i=aliceryhl@google.com; a=openpgp; fpr=49F6C1FAA74960F43A5B86A1EE7A392FDE96209F X-Developer-Signature: v=1; a=openpgp-sha256; l=1365; i=aliceryhl@google.com; h=from:subject:message-id; bh=6LmjhGfsMYkh/JPlUyVo2tvxkQci+7eMMYTtJ6n8Vd4=; b=owEBbQKS/ZANAwAKAQRYvu5YxjlGAcsmYgBnl2EXtxGwuck2XeaHMk0R79jv9xymHK5SmoVu1 I1WZl+F0ueJAjMEAAEKAB0WIQSDkqKUTWQHCvFIvbIEWL7uWMY5RgUCZ5dhFwAKCRAEWL7uWMY5 RpiyD/45Pe3QO6q/5xO5T6iPjXCn7EluqWk3nGo81oRPCcuBfzweQWkfS37ZzGvg0XmS848bNc8 IxL/QJymLJIgy4Z15DCb0jFxA54NRJZeajDn7PcI/J3reYpT3j3pMjewPGmQV/P7Imd12C+emqS 8GdBuG9ig1M+xROQzcs7JQTWcsGW1lvtr1yGUIcYu2Bw4Pg+C5B8rvwemB6uhrnSKuBQETUXg/k CzNdeNjkgm8sDkFKvPedLB34YzfXHDnHaWBrVtdRZlBSPtk+cca9jFV73Ie9gBaaiTY9zjeNwse x4q1Jzc7YT1VjtWyywXu0TgbF5O+uu/luGhTBSoQRPJXbtVHmT5ZFXNKsOS2lqxMrlnU3Ayqvza vZAHacOgHFrcLAUzGfXc11iLc1yNE5+sQ/ybbjuq1IUaRH9tG9cgLK4O7XJWCjBEqAKKUSOTnZZ GmhXC7aIPt3ur6qRtJ47gaLSaVHj14YE17dczJZLTQi+f3AHzkl8QguKuh1wTvHV8gJ6Pa9en2P /od8OhK/UPGOavtAGYXp0zpabHqE2uXxfBM1qPM8LnX3d3FhV9MlTDNbxEY0Jx82nd2yi6vBMiQ y2Hxm0nPfPH10Yz8Q67msh2Cbp9MwRbZp0/7H1GBcJDmsqy4HTC8N1R+OtTYiV/0krqw6oMlkWw 7EBNEJJAokJzLuA== X-Mailer: b4 0.13.0 Message-ID: <20250127-cursor-between-v5-0-f7c388c23642@google.com> Subject: [PATCH v5 0/2] Make the Rust linked list cursor point between elements From: Alice Ryhl To: Miguel Ojeda Cc: Alex Gaynor , Boqun Feng , Gary Guo , "=?utf-8?q?Bj=C3=B6rn_Roy_Baron?=" , Benno Lossin , Andreas Hindborg , Trevor Gross , rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alice Ryhl Content-Type: text/plain; charset="utf-8" Please see the commit message of the last patch for more details and motivation. Signed-off-by: Alice Ryhl --- Changes in v5: - Fix list / list2 in example. - Add remove_last function to example. - Link to v4: https://lore.kernel.org/r/20250123-cursor-between-v4-0-cb06698db94c@google.com Changes in v4: - Actually call the example functions. - Link to v3: https://lore.kernel.org/r/20250122-cursor-between-v3-0-aaafbd8af14d@google.com Changes in v3: - Fix `CursorPeek::deref` to use `self.ptr`. - Reword comment on `ArcBorrow` in `impl Deref for CursorPeek`. - Link to v2: https://lore.kernel.org/r/20250121-cursor-between-v2-0-1b24cd377618@google.com Changes in v2: - Extract insert_inner refactor to separate patch. - Make move_next/move_prev not wrap around. - Add some examples. - Link to v1: https://lore.kernel.org/r/20241025-cursor-between-v1-1-08913714aae5@google.com --- Alice Ryhl (2): rust: list: extract common code for insertion rust: list: make the cursor point between elements rust/kernel/list.rs | 455 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 362 insertions(+), 93 deletions(-) --- base-commit: ceff0757f5dafb5be5205988171809c877b1d3e3 change-id: 20241016-cursor-between-154bed859e27 Best regards, -- Alice Ryhl