mirror of
https://github.com/torvalds/linux.git
synced 2026-01-24 23:16:46 +00:00
rust: bitmap: add BitmapVec::new_inline()
This constructor is useful when you just want to create a BitmapVec without allocating but don't care how large it is. Acked-by: Yury Norov (NVIDIA) <yury.norov@gmail.com> Reviewed-by: Burak Emir <bqe@google.com> Reviewed-by: Danilo Krummrich <dakr@kernel.org> Signed-off-by: Alice Ryhl <aliceryhl@google.com> Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com>
This commit is contained in:
committed by
Yury Norov (NVIDIA)
parent
f5535d78e1
commit
d0cf6512bb
@@ -230,6 +230,16 @@ impl BitmapVec {
|
||||
/// The maximum length that uses the inline representation.
|
||||
pub const MAX_INLINE_LEN: usize = usize::BITS as usize;
|
||||
|
||||
/// Construct a longest possible inline [`BitmapVec`].
|
||||
#[inline]
|
||||
pub fn new_inline() -> Self {
|
||||
// INVARIANT: `nbits <= MAX_INLINE_LEN`, so an inline bitmap is the right repr.
|
||||
BitmapVec {
|
||||
repr: BitmapRepr { bitmap: 0 },
|
||||
nbits: BitmapVec::MAX_INLINE_LEN,
|
||||
}
|
||||
}
|
||||
|
||||
/// Constructs a new [`BitmapVec`].
|
||||
///
|
||||
/// Fails with [`AllocError`] when the [`BitmapVec`] could not be allocated. This
|
||||
|
||||
Reference in New Issue
Block a user