Struct fixed_bitmaps::BitmapArch [−][src]
pub struct BitmapArch(_);
Expand description
A bitmap of length usize.
Examples
// Creates an empty bitmap
use fixed_bitmaps::BitmapArch;
let mut bitmap = BitmapArch::default();
// Bitmaps implement Display so you can view what the map looks like
println!("Default bitmap: {}", bitmap);
// Bitmaps also convert to their respective unsigned int versions and back again easily
// Will show 0 as the value of the bitmap
println!("Value of bitmap: {}", bitmap.to_usize());
// Let's do the same as above, but actually setting the values in the bitmap to something
bitmap |= BitmapArch::from(101);
println!("Bitmap after OR-ing with 101: {}", bitmap);
// Set the 4th index (the 5th bit) to true. Can simply unwrap the result to ignore the warning,
//as we know for certain that 4 < usize
bitmap.set(4, true).unwrap();
// Will show that 117 (101 + 2^4) is the value of the bitmap
println!("Bitmap value: {}", bitmap.to_usize());
// Or you could use the deref operator for an even easier conversion
println!("Bitmap value: {}", *bitmap);
Implementations
Creates a new bitmap with all bits set to the given value.
Example
use fixed_bitmaps::BitmapArch;
let a = BitmapArch::new(true);
assert_eq!(*a, usize::MAX);
let b = BitmapArch::new(false);
assert_eq!(*b, 0);
Create a new bitmap that has its bits set from begin
(inclusive) to end
(exclusive).
If begin is greater than the map length or end is 0, will return a bitmap with all bits set to
the opposite of value.
Example
use fixed_bitmaps::BitmapArch;
let a = BitmapArch::create_bit_mask(3, 7, true);
assert_eq!(*a, 0b1111000);
let b = BitmapArch::create_bit_mask(3, 6, false); // Results in 1..1000111
assert_eq!(b, BitmapArch::new(true) ^ 0b111000);
Creates a new, empty BitmapArch
, and sets the desired index before returning.
use fixed_bitmaps::BitmapArch;
let a = BitmapArch::from_set(5).unwrap();
// The above is equivalent to:
let mut b = BitmapArch::from(0);
b.set(5, true);
assert_eq!(a, b);
Sets the desired index, to the value provided. Note that indexing starts at 0.
Returns
Returns a Result
based on the outcome. If an Err<String>
was returned,
it was because an out-of-bounds index was attempted to be set. In that
case the bitmap’s state remains unchanged.
Example
use fixed_bitmaps::BitmapArch;
let mut bitmap = BitmapArch::default();
assert_eq!(*bitmap, 0);
bitmap.set(4, true);
assert_eq!(*bitmap, 16);
Set bits from begin (inclusive) to end (exclusive) to the given value.
Example
use fixed_bitmaps::BitmapArch;
let mut bitmap = BitmapArch::default();
assert_eq!(*bitmap, 0);
bitmap.set_range(2, 7, true);
assert_eq!(*bitmap, 0b1111100);
bitmap.set_range(3, 5, false);
assert_eq!(*bitmap, 0b1100100);
Gets the bit at the given index. Note that indexing starts at 0.
Returns
Returns a Result
based on the outcome.
If Ok<bool>
is returned, then the contained value in ok is the state
of the given bit
If an Err<String>
was returned, it was because you tried to get
an out-of-bounds index.
Example
use fixed_bitmaps::BitmapArch;
let bitmap = BitmapArch::from(0b1010);
assert_eq!(bitmap.get(2).unwrap(), false);
assert_eq!(bitmap.get(3).unwrap(), true);
Trait Implementations
Performs the +=
operation. Read more
Performs the +=
operation. Read more
Performs the &=
operation. Read more
Performs the &=
operation. Read more
Performs the |=
operation. Read more
Performs the |=
operation. Read more
Performs the ^=
operation. Read more
Performs the ^=
operation. Read more
Returns the “default value” for a type. Read more
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Performs the /=
operation. Read more
Performs the /=
operation. Read more
Performs the *=
operation. Read more
Performs the *=
operation. Read more
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Performs the <<=
operation. Read more
Performs the >>=
operation. Read more
Performs the -=
operation. Read more
Performs the -=
operation. Read more
Auto Trait Implementations
impl RefUnwindSafe for BitmapArch
impl Send for BitmapArch
impl Sync for BitmapArch
impl Unpin for BitmapArch
impl UnwindSafe for BitmapArch
Blanket Implementations
Mutably borrows from an owned value. Read more