pub struct TwoToPowerBitsStatic<const LOG2_BITS: u8>;Expand description
Seed size given as a power of two (knowing at compile time).
Implementations§
Trait Implementations§
Source§impl<const LOG2_BITS: u8> Clone for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> Clone for TwoToPowerBitsStatic<LOG2_BITS>
Source§fn clone(&self) -> TwoToPowerBitsStatic<LOG2_BITS>
fn clone(&self) -> TwoToPowerBitsStatic<LOG2_BITS>
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 moreSource§impl<const LOG2_BITS: u8> Default for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> Default for TwoToPowerBitsStatic<LOG2_BITS>
Source§fn default() -> TwoToPowerBitsStatic<LOG2_BITS>
fn default() -> TwoToPowerBitsStatic<LOG2_BITS>
Returns the “default value” for a type. Read more
Source§impl<const LOG2_BITS: u8> GroupSize for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> GroupSize for TwoToPowerBitsStatic<LOG2_BITS>
Source§fn hash_to_group(&self, hash: u32) -> u8
fn hash_to_group(&self, hash: u32) -> u8
Returns
hash modulo self.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.fn validate(&self) -> Result<Self, &'static str>
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 write_size_bytes(&self) -> usize
fn write_size_bytes(&self) -> usize
Returns number of bytes that
self.write writes to the output.Source§impl<const LOG2_BITS: u8> SeedSize for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> SeedSize for TwoToPowerBitsStatic<LOG2_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<const LOG2_BITS: u8> Copy for TwoToPowerBitsStatic<LOG2_BITS>
Auto Trait Implementations§
impl<const LOG2_BITS: u8> Freeze for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> RefUnwindSafe for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> Send for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> Sync for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> Unpin for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> UnsafeUnpin for TwoToPowerBitsStatic<LOG2_BITS>
impl<const LOG2_BITS: u8> UnwindSafe for TwoToPowerBitsStatic<LOG2_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.