Struct yabf::Yabf [−][src]
pub struct Yabf { /* fields omitted */ }
Expand description
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
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);
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));
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));
The len() of the internal vector
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
.
Trait Implementations
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));
Performs the |=
operation. Read more
Auto Trait Implementations
impl RefUnwindSafe for Yabf
impl UnwindSafe for Yabf
Blanket Implementations
Mutably borrows from an owned value. Read more