Skip to main content

BitStream

Struct BitStream 

Source
pub struct BitStream<'a> { /* private fields */ }
Expand description

LSB-first bit reader over a borrowed byte slice.

Implementations§

Source§

impl<'a> BitStream<'a>

Source

pub fn new(bytes: &'a [u8]) -> Self

Source

pub fn read_bits(&mut self, n: u32) -> u64

Read up to 64 bits LSB-first. If the stream is exhausted, the remaining buffered bits are returned right-aligned and any further reads yield 0.

Each refill takes the next byte from the slice and shifts it into the high end of the unread portion of the buffer (so the byte’s LSB lands at position bits_in_buffer and the LSB of the whole stream is the bit that comes out first).

Source

pub fn bits_remaining(&self) -> u64

Number of bits still available without consuming them.

Auto Trait Implementations§

§

impl<'a> Freeze for BitStream<'a>

§

impl<'a> RefUnwindSafe for BitStream<'a>

§

impl<'a> Send for BitStream<'a>

§

impl<'a> Sync for BitStream<'a>

§

impl<'a> Unpin for BitStream<'a>

§

impl<'a> UnsafeUnpin for BitStream<'a>

§

impl<'a> UnwindSafe for BitStream<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.