Struct bitstream_io::BitQueue [−][src]
pub struct BitQueue<E: Endianness, N: Numeric> { /* fields omitted */ }
A queue for efficiently pushing bits onto a value and popping them off a value.
Methods
impl<E: Endianness, N: Numeric> BitQueue<E, N>
[src]
impl<E: Endianness, N: Numeric> BitQueue<E, N>
pub fn new() -> BitQueue<E, N>
[src]
pub fn new() -> BitQueue<E, N>
Returns a new empty queue
pub fn from_value(value: N, bits: u32) -> BitQueue<E, N>
[src]
pub fn from_value(value: N, bits: u32) -> BitQueue<E, N>
Creates a new queue from the given value with the given size Panics if the value is larger than the given number of bits.
pub fn set(&mut self, value: N, bits: u32)
[src]
pub fn set(&mut self, value: N, bits: u32)
Sets the queue to a given value with the given number of bits Panics if the value is larger than the given number of bits
pub fn value(self) -> N
[src]
pub fn value(self) -> N
Consumes the queue and returns its current value
pub fn len(&self) -> u32
[src]
pub fn len(&self) -> u32
Returns the total bits in the queue
pub fn max_len(&self) -> u32
[src]
pub fn max_len(&self) -> u32
Returns the maximum bits the queue can hold
pub fn remaining_len(&self) -> u32
[src]
pub fn remaining_len(&self) -> u32
Returns the remaining bits the queue can hold
pub fn is_empty(&self) -> bool
[src]
pub fn is_empty(&self) -> bool
Returns true if the queue is empty
pub fn is_full(&self) -> bool
[src]
pub fn is_full(&self) -> bool
Returns true if the queue is full
pub fn clear(&mut self)
[src]
pub fn clear(&mut self)
Drops all values in the queue
pub fn all_0(&self) -> bool
[src]
pub fn all_0(&self) -> bool
Returns true if all bits remaining in the queue are 0
pub fn all_1(&self) -> bool
[src]
pub fn all_1(&self) -> bool
Returns true if all bits remaining in the queue are 1
pub fn push(&mut self, bits: u32, value: N)
[src]
pub fn push(&mut self, bits: u32, value: N)
Pushes a value with the given number of bits onto the tail of the queue Panics if the number of bits pushed is larger than the queue can hold.
pub fn pop(&mut self, bits: u32) -> N
[src]
pub fn pop(&mut self, bits: u32) -> N
Pops a value with the given number of bits from the head of the queue Panics if the number of bits popped is larger than the number of bits in the queue.
pub fn drop(&mut self, bits: u32)
[src]
pub fn drop(&mut self, bits: u32)
Drops the given number of bits from the head of the queue without returning them. Panics if the number of bits dropped is larger than the number of bits in the queue.
pub fn pop_0(&mut self) -> u32
[src]
pub fn pop_0(&mut self) -> u32
Pops all 0 bits up to and including the next 1 bit and returns the amount of 0 bits popped
pub fn pop_1(&mut self) -> u32
[src]
pub fn pop_1(&mut self) -> u32
Pops all 1 bits up to and including the next 0 bit and returns the amount of 1 bits popped
impl<E: Endianness> BitQueue<E, u8>
[src]
impl<E: Endianness> BitQueue<E, u8>
pub fn to_state(&self) -> usize
[src]
pub fn to_state(&self) -> usize
Returns the state of the queue as a single value which can be used to perform lookups.