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]
fn new() -> BitQueue<E, N>
[src]
Returns a new empty queue
fn from_value(value: N, bits: u32) -> BitQueue<E, N>
[src]
Creates a new queue from the given value with the given size Panics if the value is larger than the given number of bits.
fn set(&mut self, value: N, bits: u32)
[src]
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
fn value(self) -> N
[src]
Consumes the queue and returns its current value
fn len(&self) -> u32
[src]
Returns the total bits in the queue
fn max_len(&self) -> u32
[src]
Returns the maximum bits the queue can hold
fn remaining_len(&self) -> u32
[src]
Returns the remaining bits the queue can hold
fn is_empty(&self) -> bool
[src]
Returns true if the queue is empty
fn is_full(&self) -> bool
[src]
Returns true if the queue is full
fn clear(&mut self)
[src]
Drops all values in the queue
fn all_0(&self) -> bool
[src]
Returns true if all bits remaining in the queue are 0
fn all_1(&self) -> bool
[src]
Returns true if all bits remaining in the queue are 1
fn push(&mut self, bits: u32, value: N)
[src]
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.
fn pop(&mut self, bits: u32) -> N
[src]
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.
fn drop(&mut self, bits: u32)
[src]
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.
fn pop_0(&mut self) -> u32
[src]
Pops all 0 bits up to and including the next 1 bit and returns the amount of 0 bits popped
fn pop_1(&mut self) -> u32
[src]
Pops all 1 bits up to and including the next 0 bit and returns the amount of 1 bits popped