pub struct Bitmap {
pub num_chunks: u16,
pub map: [u8; 256],
}Fields§
§num_chunks: u16§map: [u8; 256]Implementations§
Source§impl Bitmap
impl Bitmap
pub fn new(number_of_chunks: u16) -> Self
Sourcepub fn test_and_set(&mut self, idx: u16) -> Result<(), ErrorCode>
pub fn test_and_set(&mut self, idx: u16) -> Result<(), ErrorCode>
Mark the bit corresponding to the given index and return whether it was already set, panicking if it is out of bounds
Panicking is the “correct” behavior since it will cause the Solana tx to revert
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Check if all bits are set to 1.
Trait Implementations§
Source§impl BorshDeserialize for Bitmap
impl BorshDeserialize for Bitmap
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for Bitmap
impl BorshSerialize for Bitmap
Source§impl Ord for Bitmap
impl Ord for Bitmap
Source§impl PartialOrd for Bitmap
impl PartialOrd for Bitmap
impl Copy for Bitmap
impl Eq for Bitmap
impl StructuralPartialEq for Bitmap
Auto Trait Implementations§
impl Freeze for Bitmap
impl RefUnwindSafe for Bitmap
impl Send for Bitmap
impl Sync for Bitmap
impl Unpin for Bitmap
impl UnsafeUnpin for Bitmap
impl UnwindSafe for Bitmap
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more