From: "Onur Özkan" <work@onurozkan.dev>
To: rust-for-linux@vger.kernel.org
Cc: dakr@kernel.org, ojeda@kernel.org, alex.gaynor@gmail.com,
boqun.feng@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com,
lossin@kernel.org, a.hindborg@kernel.org, aliceryhl@google.com,
tmgross@umich.edu, linux-kernel@vger.kernel.org,
"Onur Özkan" <work@onurozkan.dev>
Subject: [PATCH v1 3/3] rust: make `kvec::Vec` functions `const fn`
Date: Sun, 20 Jul 2025 12:48:38 +0300 [thread overview]
Message-ID: <20250720094838.29530-4-work@onurozkan.dev> (raw)
In-Reply-To: <20250720094838.29530-1-work@onurozkan.dev>
Makes various `kvec::Vec` functions `const fn`
to allow compile-time evaluation.
Signed-off-by: Onur Özkan <work@onurozkan.dev>
---
rust/kernel/alloc/kvec.rs | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/rust/kernel/alloc/kvec.rs b/rust/kernel/alloc/kvec.rs
index 1a0dd852a468..af6e2564a194 100644
--- a/rust/kernel/alloc/kvec.rs
+++ b/rust/kernel/alloc/kvec.rs
@@ -174,7 +174,7 @@ const fn is_zst() -> bool {
/// Returns the number of elements that can be stored within the vector without allocating
/// additional memory.
- pub fn capacity(&self) -> usize {
+ pub const fn capacity(&self) -> usize {
if const { Self::is_zst() } {
usize::MAX
} else {
@@ -184,7 +184,7 @@ pub fn capacity(&self) -> usize {
/// Returns the number of elements stored within the vector.
#[inline]
- pub fn len(&self) -> usize {
+ pub const fn len(&self) -> usize {
self.len
}
@@ -195,7 +195,7 @@ pub fn len(&self) -> usize {
/// - `additional` must be less than or equal to `self.capacity - self.len`.
/// - All elements within the interval [`self.len`,`self.len + additional`) must be initialized.
#[inline]
- pub unsafe fn inc_len(&mut self, additional: usize) {
+ pub const unsafe fn inc_len(&mut self, additional: usize) {
// Guaranteed by the type invariant to never underflow.
debug_assert!(additional <= self.capacity() - self.len());
// INVARIANT: By the safety requirements of this method this represents the exact number of
@@ -244,7 +244,7 @@ pub fn as_mut_ptr(&mut self) -> *mut T {
/// Returns a raw pointer to the vector's backing buffer, or, if `T` is a ZST, a dangling raw
/// pointer.
#[inline]
- pub fn as_ptr(&self) -> *const T {
+ pub const fn as_ptr(&self) -> *const T {
self.ptr.as_ptr()
}
@@ -260,7 +260,7 @@ pub fn as_ptr(&self) -> *const T {
/// assert!(!v.is_empty());
/// ```
#[inline]
- pub fn is_empty(&self) -> bool {
+ pub const fn is_empty(&self) -> bool {
self.len() == 0
}
--
2.50.0
next prev parent reply other threads:[~2025-07-20 9:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-20 9:48 [PATCH v1 0/3] rust: make various `alloc` functions `const fn` Onur Özkan
2025-07-20 9:48 ` [PATCH v1 1/3] rust: make `allocator::aligned_size` a " Onur Özkan
2025-08-17 16:50 ` Miguel Ojeda
2025-07-20 9:48 ` [PATCH v1 2/3] rust: make `ArrayLayout::new_unchecked` " Onur Özkan
2025-07-20 9:48 ` Onur Özkan [this message]
2025-07-20 14:43 ` [PATCH v1 0/3] rust: make various `alloc` functions " Benno Lossin
2025-07-20 15:17 ` Onur Özkan
2025-07-20 15:42 ` Miguel Ojeda
2025-07-21 6:13 ` Onur Özkan
2025-07-21 20:13 ` Miguel Ojeda
2025-07-21 11:31 ` Alice Ryhl
2025-08-15 18:01 ` Danilo Krummrich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250720094838.29530-4-work@onurozkan.dev \
--to=work@onurozkan.dev \
--cc=a.hindborg@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@kernel.org \
--cc=gary@garyguo.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tmgross@umich.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.