Struct yabf::Yabf [−][src]
pub struct Yabf { /* fields omitted */ }
Yet another bit field implementation. This is a simple, small and hopefully efficient bit field implementation.
It is intended for cases where a program iterates over list or other usize indexed containers and simple bit based bookkeeping is required.
Implementations
impl Yabf
[src]
impl Yabf
[src]pub fn with_capacity(bits: usize) -> Self
[src]
Construct an empty bit field with enough capacity pre-allocated to store at least n
bits.
let bf = Yabf::with_capacity(100); assert!(bf.is_empty()); assert!(bf.capacity() >= 100);
pub fn bit(&self, n: usize) -> bool
[src]
Returns the value of the ‘n’:th bit in the bit field.
let mut bf = Yabf::default(); assert!(bf.is_empty()); assert!(!bf.bit(10)); bf.set_bit(10,true); assert!(bf.bit(10));
pub fn set_bit(&mut self, n: usize, state: bool)
[src]
Sets the ‘n’:th bit in the bit field. If the bit field capacity is not large enough more space will be allocated.
let mut bf = Yabf::default(); assert!(bf.is_empty()); assert!(!bf.bit(10)); bf.set_bit(10,true); assert!(bf.bit(10));
pub fn is_empty(&self) -> bool
[src]
Returns true
if all bits are set to false
pub fn capacity(&self) -> usize
[src]
The number of bits the bit field can hold without reallocating
pub fn internal_len(&self) -> usize
[src]
The len() of the internal vector
pub fn reserve(&mut self, additional_bits: usize)
[src]
Reserve capacity for additional_bits
more bits to be inserted.
May reserve more space to avoid frequent re-allocations.
Panics if the capacity computation overflows usize
.
pub fn clear(&mut self)
[src]
Remove all elements from the vector. This method simply delegates clear() to the underlying vector std::vec::Vec or smallvec::SmallVec. So what actually happen depends on the feature set.
Trait Implementations
impl BitOrAssign<&'_ Yabf> for Yabf
[src]
impl BitOrAssign<&'_ Yabf> for Yabf
[src]bit or assign operation. This is a relatively expensive O(size of container) operation.
let mut a = Yabf::default(); let mut b = Yabf::default(); a.set_bit(45,true); b.set_bit(12345,true); assert!(!a.bit(12345)); assert!(a.bit(45)); a |= &b; assert!(a.bit(12345)); assert!(a.bit(45));
fn bitor_assign(&mut self, other: &Yabf)
[src]
impl<'a> IntoIterator for &'a Yabf
[src]
impl<'a> IntoIterator for &'a Yabf
[src]Auto Trait Implementations
impl RefUnwindSafe for Yabf
impl RefUnwindSafe for Yabf
impl UnwindSafe for Yabf
impl UnwindSafe for Yabf