pub struct BitPackedInts { /* private fields */ }Expand description
Implementations§
Source§impl BitPackedInts
impl BitPackedInts
Sourcepub fn from_raw_parts(data: Vec<u64>, bits_per_value: u8, count: usize) -> Self
pub fn from_raw_parts(data: Vec<u64>, bits_per_value: u8, count: usize) -> Self
Reconstructs from pre-packed raw parts.
Used by section deserialization. The caller is responsible for ensuring the data is consistent (correct word count for the given bits and count).
Sourcepub fn pack_with_bits(values: &[u64], bits_per_value: u8) -> Self
pub fn pack_with_bits(values: &[u64], bits_per_value: u8) -> Self
Packs values using a specified bit width.
§Panics
Panics if any value doesn’t fit in the specified bit width.
Sourcepub fn bits_per_value(&self) -> u8
pub fn bits_per_value(&self) -> u8
Returns the number of bits per value.
Sourcepub fn compression_ratio(&self) -> f64
pub fn compression_ratio(&self) -> f64
Returns the compression ratio compared to storing full u64s.
Sourcepub fn bits_needed(value: u64) -> u8
pub fn bits_needed(value: u64) -> u8
Returns the number of bits needed to represent a value.
The result is always in 1..=64.
§Panics
Cannot panic: the result of 64 - leading_zeros() is always in
1..=64, which fits u8.
Sourcepub fn from_bytes(bytes: &[u8]) -> Result<Self>
pub fn from_bytes(bytes: &[u8]) -> Result<Self>
Deserializes from bytes.
§Errors
Returns Err if the byte slice is too short or contains invalid data.
Trait Implementations§
Source§impl Clone for BitPackedInts
impl Clone for BitPackedInts
Source§fn clone(&self) -> BitPackedInts
fn clone(&self) -> BitPackedInts
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for BitPackedInts
impl RefUnwindSafe for BitPackedInts
impl Send for BitPackedInts
impl Sync for BitPackedInts
impl Unpin for BitPackedInts
impl UnsafeUnpin for BitPackedInts
impl UnwindSafe for BitPackedInts
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more