Skip to main content

Prime

Struct Prime 

Source
pub struct Prime { /* private fields */ }
Expand description

Grow by stepping through a fixed table of primes and map with a modulo.

A modulo by a compile-time-unknown prime is still fast here because the table is small and the index selects the divisor. This policy spreads values better than PowerOfTwo when the hash is poor.

Trait Implementations§

Source§

impl Clone for Prime

Source§

fn clone(&self) -> Prime

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl GrowthPolicy for Prime

Source§

fn new(min_bucket_count: usize) -> Result<(Self, usize), LengthError>

Build a policy for at least min_bucket_count buckets. Read more
Source§

fn bucket_for_hash(&self, hash: usize) -> usize

Map hash to a bucket in [0, bucket_count).
Source§

fn next_bucket_count(&self) -> Result<usize, LengthError>

The bucket count to use on the next growth. Read more
Source§

fn max_bucket_count(&self) -> usize

The largest bucket count the policy can represent.
Source§

fn clear(&mut self)

Reset the policy to the state of a 0-bucket table.
Source§

fn is_power_of_two() -> bool

Whether this policy keeps the bucket count a power of two. Read more

Auto Trait Implementations§

§

impl Freeze for Prime

§

impl RefUnwindSafe for Prime

§

impl Send for Prime

§

impl Sync for Prime

§

impl Unpin for Prime

§

impl UnsafeUnpin for Prime

§

impl UnwindSafe for Prime

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.