pub struct SeedOnlyK(pub u8);Expand description
SeedChooser to build k-perfect functions.
k is given as a parameter of this chooser.
Should be used with [Perfect].
It chooses best seed with quite strong hasher, without shift component, which should lead to quite small size, but long construction time.
Tuple Fields§
§0: u8Trait Implementations§
Source§impl SeedChooser for SeedOnlyK
impl SeedChooser for SeedOnlyK
Source§fn k(self) -> u8
fn k(self) -> u8
Returns maximum number of keys mapped to each output value; k of k-perfect function.
Source§fn minimal_output_range(self, num_of_keys: usize) -> usize
fn minimal_output_range(self, num_of_keys: usize) -> usize
Returns output range of minimal (perfect or k-perfect) function for given number of keys.
type UsedValues = CyclicArray<u8, MAX_VALUES>
Source§fn f(self, primary_code: u64, seed: u16, conf: &Conf) -> usize
fn f(self, primary_code: u64, seed: u16, conf: &Conf) -> usize
Returns function value for given primary code and seed.
Source§fn best_seed(
self,
used_values: &mut Self::UsedValues,
keys: &[u64],
conf: &Conf,
bits_per_seed: u8,
) -> u16
fn best_seed( self, used_values: &mut Self::UsedValues, keys: &[u64], conf: &Conf, bits_per_seed: u8, ) -> u16
Returns best seed to store in seeds array or
u16::MAX if NO_BUMPING is true and there is no feasible seed.Source§const FIRST_SEED: u16 = _
const FIRST_SEED: u16 = _
The lowest seed that does not indicate bumping.
Source§const FUNCTION2_THRESHOLD: usize = 4096
const FUNCTION2_THRESHOLD: usize = 4096
Size of last level of Function2. Important when
extra_shift()>0 (i.e. for ShiftOnly).fn bucket_evaluator(&self, bits_per_seed: u8, slice_len: u16) -> Weights
fn conf( self, output_range: usize, input_size: usize, bits_per_seed: u8, bucket_size_100: u16, preferred_slice_len: u16, ) -> Conf
fn conf_for_minimal( self, num_of_keys: usize, bits_per_seed: u8, bucket_size_100: u16, preferred_slice_len: u16, ) -> Conf
fn conf_for_minimal_p<SS: Copy + Into<u8>>( self, num_of_keys: usize, params: &Params<SS>, ) -> Conf
Source§fn extra_shift(self, _bits_per_seed: u8) -> u16
fn extra_shift(self, _bits_per_seed: u8) -> u16
How much the chooser can add to value over slice length.
impl Copy for SeedOnlyK
Auto Trait Implementations§
impl Freeze for SeedOnlyK
impl RefUnwindSafe for SeedOnlyK
impl Send for SeedOnlyK
impl Sync for SeedOnlyK
impl Unpin for SeedOnlyK
impl UnsafeUnpin for SeedOnlyK
impl UnwindSafe for SeedOnlyK
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.