Skip to main content

BuildConf

Struct BuildConf 

Source
pub struct BuildConf<S = BuildDefaultSeededHasher> {
    pub hash_builder: S,
    pub cache_threshold: usize,
    pub relative_level_size: u16,
    pub use_multiple_threads: bool,
}
Expand description

Build configuration that is accepted by Function constructors.

See field descriptions for details.

Fields§

§hash_builder: S

The family of hash functions used by the constructed FMPH. (default: BuildDefaultSeededHasher)

§cache_threshold: usize

The threshold for the number of keys below which their hashes will be cached during level construction. (default: BuildConf::DEFAULT_CACHE_THRESHOLD)

Caching speeds up level construction at the expense of memory consumption during construction (caching a single key requires 8 bytes of memory). Caching is particularly recommended for keys with complex types whose hashing is slow. It is possible to use a value of 0 to disable caching completely, or usize::MAX to use it on all levels.

§relative_level_size: u16

Size of each level given as a percentage of the number of level input keys. (default: 100)

A value of 100 minimizes the size of the constructed minimum perfect hash function. Larger values speed up evaluation at the expense of increased size. For example, the values 100 and 200 lead to the sizes of approximately 2.8 and 3.4 bits per input key, respectively. It does not make sense to use values below 100.

§use_multiple_threads: bool

Whether to use multiple threads during construction. (default: true)

If true, the construction will be performed using the default rayon thread pool.

Implementations§

Source§

impl BuildConf

Source

pub fn mt(use_multiple_threads: bool) -> Self

Returns configuration that potentially uses multiple threads to build Function.

Source

pub fn ct(cache_threshold: usize) -> Self

Returns configuration that uses custom cache_threshold to build Function.

Source

pub fn ct_mt(cache_threshold: usize, use_multiple_threads: bool) -> Self

Returns configuration that uses custom cache_threshold and potentially uses multiple threads to build Function.

Source

pub fn lsize(relative_level_size: u16) -> Self

Returns configuration that uses at each level a bit-array of size relative_level_size given as a percent of number of level input keys.

Source

pub fn lsize_ct(relative_level_size: u16, cache_threshold: usize) -> Self

Returns configuration that uses custom relative_level_size and cache_threshold to build Function.

Source

pub fn lsize_mt(relative_level_size: u16, use_multiple_threads: bool) -> Self

Returns configuration that potentially uses multiple threads and at each level a bit-array of size relative_level_size given as a percent of number of level input keys.

Source§

impl<S> BuildConf<S>

Source

pub const DEFAULT_CACHE_THRESHOLD: usize

The default value for relative_level_size, which results in building the cache with a maximum size of 1GB.

Source

pub fn hash(hash_builder: S) -> Self

Returns configuration that uses custom hash_builder.

Source

pub fn hash_lsize(hash_builder: S, relative_level_size: u16) -> Self

Returns configuration that uses custom hash_builder and relative_level_size.

Source

pub fn hash_lsize_mt( hash_builder: S, relative_level_size: u16, use_multiple_threads: bool, ) -> Self

Returns configuration that uses custom hash_builder, relative_level_size and potentially uses multiple threads to build Function.

Source

pub fn hash_lsize_ct( hash_builder: S, relative_level_size: u16, cache_threshold: usize, ) -> Self

Returns configuration that uses custom hash_builder, relative_level_size and cache_threshold to build Function.

Source

pub fn hash_lsize_ct_mt( hash_builder: S, relative_level_size: u16, cache_threshold: usize, use_multiple_threads: bool, ) -> Self

Returns configuration that uses custom hash_builder, relative_level_size, cache_threshold and potentially uses multiple threads to build Function.

Trait Implementations§

Source§

impl<S: Clone> Clone for BuildConf<S>

Source§

fn clone(&self) -> BuildConf<S>

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Default for BuildConf

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<S> Freeze for BuildConf<S>
where S: Freeze,

§

impl<S> RefUnwindSafe for BuildConf<S>
where S: RefUnwindSafe,

§

impl<S> Send for BuildConf<S>
where S: Send,

§

impl<S> Sync for BuildConf<S>
where S: Sync,

§

impl<S> Unpin for BuildConf<S>
where S: Unpin,

§

impl<S> UnsafeUnpin for BuildConf<S>
where S: UnsafeUnpin,

§

impl<S> UnwindSafe for BuildConf<S>
where S: UnwindSafe,

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> CastableFrom<T> for T

Source§

fn cast_from(value: T) -> T

Call Self as W
Source§

impl<T, U> CastableInto<U> for T
where U: CastableFrom<T>,

Source§

fn cast(self) -> U

Call W::cast_from(self)
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> DowncastableFrom<T> for T

Source§

fn downcast_from(value: T) -> T

Truncate the current UnsignedInt to a possibly smaller size
Source§

impl<T, U> DowncastableInto<U> for T
where U: DowncastableFrom<T>,

Source§

fn downcast(self) -> U

Call W::downcast_from(self)
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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Splat<T> for T

Source§

fn splat(value: T) -> T

Source§

impl<T> To<T> for T

Source§

fn to(self) -> T

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.
Source§

impl<T> UpcastableFrom<T> for T

Source§

fn upcast_from(value: T) -> T

Extend the current UnsignedInt to a possibly bigger size.
Source§

impl<T, U> UpcastableInto<U> for T
where U: UpcastableFrom<T>,

Source§

fn upcast(self) -> U

Call W::upcast_from(self)
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V