summaryrefslogtreecommitdiff
path: root/rust/kernel/num/bounded.rs
diff options
context:
space:
mode:
authorAlexandre Courbot <acourbot@nvidia.com>2026-03-14 10:06:13 +0900
committerDanilo Krummrich <dakr@kernel.org>2026-03-17 20:04:11 +0100
commit164f8634bfd8eef7b90c429156c59706635cfb88 (patch)
treec4955d2bf9f21df8d3424a8a354e57329ae08eb4 /rust/kernel/num/bounded.rs
parentc59a2d14cd248c77457b821b15c72e6a6a268553 (diff)
downloadlwn-164f8634bfd8eef7b90c429156c59706635cfb88.tar.gz
lwn-164f8634bfd8eef7b90c429156c59706635cfb88.zip
rust: num: add `into_bool` method to `Bounded`
Single-bit numbers are typically treated as booleans. There is an `Into<bool>` implementation for those, but invoking it from contexts that lack type expectations is not always convenient. Add an `into_bool` method as a simpler shortcut. Reviewed-by: Alice Ryhl <aliceryhl@google.com> Reviewed-by: Gary Guo <gary@garyguo.net> Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com> Reviewed-by: Yury Norov <yury.norov@gmail.com> Tested-by: Dirk Behme <dirk.behme@de.bosch.com> Acked-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Link: https://patch.msgid.link/20260314-register-v9-3-86805b2f7e9d@nvidia.com Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'rust/kernel/num/bounded.rs')
-rw-r--r--rust/kernel/num/bounded.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/rust/kernel/num/bounded.rs b/rust/kernel/num/bounded.rs
index 2f5f13ecd3d6..d28d118abd8e 100644
--- a/rust/kernel/num/bounded.rs
+++ b/rust/kernel/num/bounded.rs
@@ -1101,3 +1101,24 @@ where
unsafe { Self::__new(T::from(value)) }
}
}
+
+impl<T> Bounded<T, 1>
+where
+ T: Integer + Zeroable,
+{
+ /// Converts this [`Bounded`] into a [`bool`].
+ ///
+ /// This is a shorter way of writing `bool::from(self)`.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// use kernel::num::Bounded;
+ ///
+ /// assert_eq!(Bounded::<u8, 1>::new::<0>().into_bool(), false);
+ /// assert_eq!(Bounded::<u8, 1>::new::<1>().into_bool(), true);
+ /// ```
+ pub fn into_bool(self) -> bool {
+ self.into()
+ }
+}