pub struct Bits(pub u8);Expand description
Size in bits.
Tuple Fields§
§0: u8Trait Implementations§
Source§impl GroupSize for Bits
impl GroupSize for Bits
fn validate(&self) -> Result<Self, &'static str>
Source§fn hash_to_group(&self, hash: u32) -> u8
fn hash_to_group(&self, hash: u32) -> u8
Returns
hash modulo self.Source§fn in_group_index(&self, hash: u64, group_seed: u16) -> u8
fn in_group_index(&self, hash: u64, group_seed: u16) -> u8
Returns index in the group with given seed
group_seed using hasher
which must be modified earlier by group_nr function.Source§fn bit_index_for_seed(&self, hash: u64, group_seed: u16, group: usize) -> usize
fn bit_index_for_seed(&self, hash: u64, group_seed: u16, group: usize) -> usize
Returns bit index inside the group with number
group and seed group_seed,
assigned to the key hashed by the hasher.Source§fn level_size_groups_segments(
&self,
desired_total_size: usize,
) -> (usize, usize)
fn level_size_groups_segments( &self, desired_total_size: usize, ) -> (usize, usize)
Returns number of groups and 64-bit segments for given
desired_total_size.Source§fn copy_group_if_better<CB>(
&self,
dst: &mut [u64],
src: &[u64],
group_index: usize,
callback: CB,
)where
CB: FnOnce(),
fn copy_group_if_better<CB>(
&self,
dst: &mut [u64],
src: &[u64],
group_index: usize,
callback: CB,
)where
CB: FnOnce(),
Returns number of ones in the group.
If group with given index has more ones in
dst than in src, then copy it from src to dst and call callback.Source§fn write_size_bytes(&self) -> usize
fn write_size_bytes(&self) -> usize
Returns number of bytes that
self.write writes to the output.Source§impl SeedSize for Bits
impl SeedSize for Bits
type VecElement = u64
fn new_zeroed_seed_vec(&self, number_of_seeds: usize) -> Box<[Self::VecElement]>
fn new_seed_vec( &self, seed: u16, number_of_seeds: usize, ) -> Box<[Self::VecElement]>
Source§unsafe fn get_seed(&self, vec: &[Self::VecElement], index: usize) -> u16
unsafe fn get_seed(&self, vec: &[Self::VecElement], index: usize) -> u16
Gets seed with given
index from vec.
Does not check whether the index is within bounds.Source§unsafe fn set_seed(&self, vec: &mut [Self::VecElement], index: usize, seed: u16)
unsafe fn set_seed(&self, vec: &mut [Self::VecElement], index: usize, seed: u16)
Sets seed with given
index in vec to seed.
Does not check whether the index is within bounds.Source§unsafe fn init_seed(
&self,
vec: &mut [Self::VecElement],
index: usize,
seed: u16,
)
unsafe fn init_seed( &self, vec: &mut [Self::VecElement], index: usize, seed: u16, )
Sets seed with given
index in zeroed vec to seed.
Does not check whether the index is within bounds and vec is zeroed.fn write_seed_vec( &self, output: &mut dyn Write, seeds: &[Self::VecElement], ) -> Result<()>
fn read_seed_vec( input: &mut dyn Read, number_of_seeds: usize, ) -> Result<(Self, Box<[Self::VecElement]>)>
const VEC_ELEMENT_BIT_SIZE: usize = _
fn validate(&self) -> Result<Self, &'static str>
fn concatenate_seed_vecs<LSI, LS>( &self, level_sizes: LS, seeds: Vec<Box<[Self::VecElement]>>, ) -> Box<[Self::VecElement]>
impl Copy for Bits
Auto Trait Implementations§
impl Freeze for Bits
impl RefUnwindSafe for Bits
impl Send for Bits
impl Sync for Bits
impl Unpin for Bits
impl UnsafeUnpin for Bits
impl UnwindSafe for Bits
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, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DowncastableFrom<T> for T
impl<T> DowncastableFrom<T> for T
Source§fn downcast_from(value: T) -> T
fn downcast_from(value: T) -> T
Truncate the current UnsignedInt to a possibly smaller size
Source§impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> UpcastableFrom<T> for T
impl<T> UpcastableFrom<T> for T
Source§fn upcast_from(value: T) -> T
fn upcast_from(value: T) -> T
Extend the current UnsignedInt to a possibly bigger size.