pub struct Bitmap16(/* private fields */);
Expand description
A bitmap of length 16.
§Examples
// Creates an empty bitmap
use fixed_bitmaps::Bitmap16;
let mut bitmap = Bitmap16::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_u16());
// Let's do the same as above, but actually setting the values in the bitmap to something
bitmap |= Bitmap16::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 < 16
bitmap.set(4, true).unwrap();
// Will show that 117 (101 + 2^4) is the value of the bitmap
println!("Bitmap value: {}", bitmap.to_u16());
// Or you could use the deref operator for an even easier conversion
println!("Bitmap value: {}", *bitmap);
Implementations§
Source§impl Bitmap16
impl Bitmap16
pub fn capacity() -> usize
pub fn to_u16(&self) -> u16
Sourcepub fn new(value: bool) -> Bitmap16
pub fn new(value: bool) -> Bitmap16
Creates a new bitmap with all bits set to the given value.
§Example
use fixed_bitmaps::Bitmap16;
let a = Bitmap16::new(true);
assert_eq!(*a, u16::MAX);
let b = Bitmap16::new(false);
assert_eq!(*b, 0);
Sourcepub fn create_bit_mask(begin: usize, end: usize, value: bool) -> Bitmap16
pub fn create_bit_mask(begin: usize, end: usize, value: bool) -> Bitmap16
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::Bitmap16;
let a = Bitmap16::create_bit_mask(3, 7, true);
assert_eq!(*a, 0b1111000);
let b = Bitmap16::create_bit_mask(3, 6, false); // Results in 1..1000111
assert_eq!(b, Bitmap16::new(true) ^ 0b111000);
Sourcepub fn from_set(index: usize) -> Option<Bitmap16>
pub fn from_set(index: usize) -> Option<Bitmap16>
Creates a new, empty Bitmap16
, and sets the desired index before returning.
use fixed_bitmaps::Bitmap16;
let a = Bitmap16::from_set(5).unwrap();
// The above is equivalent to:
let mut b = Bitmap16::from(0);
b.set(5, true);
assert_eq!(a, b);
Sourcepub fn set(&mut self, index: usize, value: bool) -> Result<(), String>
pub fn set(&mut self, index: usize, value: bool) -> Result<(), String>
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::Bitmap16;
let mut bitmap = Bitmap16::default();
assert_eq!(*bitmap, 0);
bitmap.set(4, true);
assert_eq!(*bitmap, 16);
Sourcepub fn set_range(&mut self, begin: usize, end: usize, value: bool)
pub fn set_range(&mut self, begin: usize, end: usize, value: bool)
Set bits from begin (inclusive) to end (exclusive) to the given value.
§Example
use fixed_bitmaps::Bitmap16;
let mut bitmap = Bitmap16::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);
Sourcepub fn get(&self, index: usize) -> Result<bool, String>
pub fn get(&self, index: usize) -> Result<bool, String>
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::Bitmap16;
let bitmap = Bitmap16::from(0b1010);
assert_eq!(bitmap.get(2).unwrap(), false);
assert_eq!(bitmap.get(3).unwrap(), true);
Trait Implementations§
Source§impl AddAssign<u16> for Bitmap16
impl AddAssign<u16> for Bitmap16
Source§fn add_assign(&mut self, rhs: u16)
fn add_assign(&mut self, rhs: u16)
+=
operation. Read moreSource§impl AddAssign for Bitmap16
impl AddAssign for Bitmap16
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+=
operation. Read moreSource§impl BitAndAssign<u16> for Bitmap16
impl BitAndAssign<u16> for Bitmap16
Source§fn bitand_assign(&mut self, rhs: u16)
fn bitand_assign(&mut self, rhs: u16)
&=
operation. Read moreSource§impl BitAndAssign for Bitmap16
impl BitAndAssign for Bitmap16
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&=
operation. Read moreSource§impl BitOrAssign<u16> for Bitmap16
impl BitOrAssign<u16> for Bitmap16
Source§fn bitor_assign(&mut self, rhs: u16)
fn bitor_assign(&mut self, rhs: u16)
|=
operation. Read moreSource§impl BitOrAssign for Bitmap16
impl BitOrAssign for Bitmap16
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|=
operation. Read moreSource§impl BitXorAssign<u16> for Bitmap16
impl BitXorAssign<u16> for Bitmap16
Source§fn bitxor_assign(&mut self, rhs: u16)
fn bitxor_assign(&mut self, rhs: u16)
^=
operation. Read moreSource§impl BitXorAssign for Bitmap16
impl BitXorAssign for Bitmap16
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^=
operation. Read moreSource§impl BitmapSize for Bitmap16
impl BitmapSize for Bitmap16
const MAP_LENGTH: usize = 16usize
Source§impl<'de> Deserialize<'de> for Bitmap16
impl<'de> Deserialize<'de> for Bitmap16
Source§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>,
Source§impl DivAssign<u16> for Bitmap16
impl DivAssign<u16> for Bitmap16
Source§fn div_assign(&mut self, rhs: u16)
fn div_assign(&mut self, rhs: u16)
/=
operation. Read moreSource§impl DivAssign for Bitmap16
impl DivAssign for Bitmap16
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
/=
operation. Read moreSource§impl MulAssign<u16> for Bitmap16
impl MulAssign<u16> for Bitmap16
Source§fn mul_assign(&mut self, rhs: u16)
fn mul_assign(&mut self, rhs: u16)
*=
operation. Read moreSource§impl MulAssign for Bitmap16
impl MulAssign for Bitmap16
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*=
operation. Read moreSource§impl Ord for Bitmap16
impl Ord for Bitmap16
Source§impl PartialOrd for Bitmap16
impl PartialOrd for Bitmap16
Source§impl ShlAssign<usize> for Bitmap16
impl ShlAssign<usize> for Bitmap16
Source§fn shl_assign(&mut self, rhs: usize)
fn shl_assign(&mut self, rhs: usize)
<<=
operation. Read moreSource§impl ShrAssign<usize> for Bitmap16
impl ShrAssign<usize> for Bitmap16
Source§fn shr_assign(&mut self, rhs: usize)
fn shr_assign(&mut self, rhs: usize)
>>=
operation. Read moreSource§impl SubAssign<u16> for Bitmap16
impl SubAssign<u16> for Bitmap16
Source§fn sub_assign(&mut self, rhs: u16)
fn sub_assign(&mut self, rhs: u16)
-=
operation. Read moreSource§impl SubAssign for Bitmap16
impl SubAssign for Bitmap16
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-=
operation. Read more