Struct BitwiseData

Source
pub struct BitwiseData {
    pub data: Vec<u8>,
    pub total_bits: usize,
}
Expand description
  • A utility for you to manipulate data bitwise, mainly to concatenate data in bits or to split data from a specific bit position.
  • A utility for you to manipulate data bitwise, mainly to concatenate data in bits or to split data from a specific bit position.
  • This is mainly used for Vorbis data parsing.

Fields§

§data: Vec<u8>
  • Store as bytes
§total_bits: usize
  • The total bits of the books

Implementations§

Source§

impl BitwiseData

Source

pub fn new(data: &[u8], total_bits: usize) -> BitwiseData

Source

pub fn from_bytes(data: &[u8]) -> BitwiseData

  • Construct from bytes
Source

pub fn get_total_bits(&self) -> usize

  • Get the number of total bits in the data field
Source

pub fn get_total_bytes(&self) -> usize

  • Get the number of bytes that are just enough to contain all of the bits.
Source

pub fn calc_total_bytes(total_bits: usize) -> usize

  • Get the number of bytes that are just enough to contain all of the bits.
Source

pub fn fit_to_aligned_size(&mut self)

  • Resize to the aligned size. Doing this is for shift_data_to_front() and shift_data_to_back() to manipulate bits efficiently.
Source

pub fn shrink_to_fit(&mut self)

  • Resize to the number of bytes that are just enough to contain all of the bits.
Source

pub fn is_aligned_size(&self) -> bool

  • Check if the data length is just the aligned size.
Source

pub fn split(&self, split_at_bit: usize) -> (BitwiseData, BitwiseData)

  • Breakdown to 2 parts of the data at the specific bitvise position.
Source

pub fn concat(&mut self, rhs: &BitwiseData)

  • Concat another BitwiseData to the bitstream, without the gap.
Source

pub fn into_bytes(self) -> Vec<u8>

  • Turn to byte array

Trait Implementations§

Source§

impl Clone for BitwiseData

Source§

fn clone(&self) -> BitwiseData

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BitwiseData

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for BitwiseData

Source§

fn default() -> BitwiseData

Returns the “default value” for a type. Read more
Source§

impl PartialEq for BitwiseData

Source§

fn eq(&self, other: &BitwiseData) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for BitwiseData

Source§

impl StructuralPartialEq for BitwiseData

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.