Struct csf::fp::Map

source ·
pub struct Map<S = BuildDefaultSeededHasher> { /* private fields */ }
Expand description

Finger-printing based static function (immutable map) that maps hashable keys to unsigned integer values of given bit-size.

It usually takes somewhat more than nb bits to represent a function from an n-element set into a set of b-bit values. (Smaller sizes are achieved when the set of values is small and the same values are assigned to multiple keys.) The expected time complexities of its construction and evaluation are O(n) and O(1), respectively.

Implementations§

source§

impl<S: BuildSeededHasher> Map<S>

source

pub fn get_stats<K: Hash, A: AccessStatsCollector>( &self, k: &K, access_stats: &mut A ) -> Option<u8>

Gets the value associated with the given key k and reports statistics to access_stats.

source

pub fn get<K: Hash>(&self, k: &K) -> Option<u8>

Gets the value associated with the given key k.

source

pub fn with_slices_conf<K: Hash, LSC: SimpleLevelSizeChooser, CSB: CollisionSolverBuilder>( keys: &mut [K], values: &mut [u8], conf: MapConf<LSC, CSB, S> ) -> Self

source

pub fn write_bytes(&self) -> usize

Returns number of bytes which write will write.

source

pub fn write(&self, output: &mut dyn Write) -> Result<()>

Write self to the output.

source

pub fn read_with_hasher(input: &mut dyn Read, hasher: S) -> Result<Self>

Read self from the input (hasher must be the same as used by written Map).

source§

impl Map

source

pub fn read(input: &mut dyn Read) -> Result<Self>

Read self from the input. Only FPMaps that use default hasher can be read by this method.

source§

impl<S: BuildSeededHasher> Map<S>

source

pub fn with_map_conf<K: Hash + Clone, H, LSC: SimpleLevelSizeChooser, CSB: CollisionSolverBuilder, BS: BuildStatsCollector>( map: &HashMap<K, u8, H>, conf: MapConf<LSC, CSB, S>, stats: &mut BS ) -> Self

source§

impl Map

source

pub fn with_map<K: Hash + Clone, H, BS: BuildStatsCollector>( map: &HashMap<K, u8, H>, stats: &mut BS ) -> Self

Trait Implementations§

source§

impl<K: Hash + Clone, H> From<&HashMap<K, u8, H>> for Map

source§

fn from(map: &HashMap<K, u8, H>) -> Self

Converts to this type from the input type.
source§

impl<K: Hash + Clone, H> From<HashMap<K, u8, H>> for Map

source§

fn from(map: HashMap<K, u8, H>) -> Self

Converts to this type from the input type.
source§

impl<S: BuildSeededHasher> GetSize for Map<S>

source§

fn size_bytes_dyn(&self) -> usize

Returns approximate number of bytes occupied by dynamic (heap) part of self. Same as self.size_bytes() - std::mem::size_of_val(self).
source§

const USES_DYN_MEM: bool = true

true if and only if the variables of this type can use dynamic (heap) memory.
source§

fn size_bytes_content_dyn(&self) -> usize

Returns approximate number of bytes occupied by dynamic (heap) part of self content. It usually equals to size_bytes_dyn(). However, sometimes it is smaller by the amount of memory reserved but not yet used (e.g., size_bytes_content_dyn() only takes into account the length of the vector and not its capacity).
source§

fn size_bytes(&self) -> usize

Returns approximate, total (including heap memory) number of bytes occupied by self.

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

impl<S> UnwindSafe for Map<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> 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.