[][src]Struct boomphf::hashmap::BoomHashMap2

pub struct BoomHashMap2<K: Hash, D1, D2> { /* fields omitted */ }

A HashMap data structure where the mapping between keys and 2 values is encoded in a Mphf. You should usually use BoomHashMap with a tuple/struct value type. If the layout overhead of the struct / tuple must be avoided, this variant of is an alternative. This lets us store the keys and values in dense arrays, with ~3 bits/item overhead in the Mphf.

Implementations

impl<K, D1, D2> BoomHashMap2<K, D1, D2> where
    K: Hash + Debug + PartialEq,
    D1: Debug,
    D2: Debug
[src]

pub fn new(
    keys: Vec<K>,
    values: Vec<D1>,
    aux_values: Vec<D2>
) -> BoomHashMap2<K, D1, D2>
[src]

Create a new hash map from the parallel arrays keys and values, and aux_values

pub fn get<Q: ?Sized>(&self, kmer: &Q) -> Option<(&D1, &D2)> where
    K: Borrow<Q>,
    Q: Hash + Eq
[src]

pub fn get_key_id<Q: ?Sized>(&self, kmer: &Q) -> Option<usize> where
    K: Borrow<Q>,
    Q: Hash + Eq
[src]

pub fn len(&self) -> usize[src]

pub fn is_empty(&self) -> bool[src]

pub fn iter(&self) -> Boom2Iterator<'_, K, D1, D2>

Notable traits for Boom2Iterator<'a, K, D1, D2>

impl<'a, K: Hash, D1, D2> Iterator for Boom2Iterator<'a, K, D1, D2> type Item = (&'a K, &'a D1, &'a D2);
[src]

pub fn get_key(&self, id: usize) -> Option<&K>[src]

impl<K, D1, D2> BoomHashMap2<K, D1, D2> where
    K: Hash + Debug + PartialEq + Send + Sync,
    D1: Debug,
    D2: Debug
[src]

pub fn new_parallel(
    keys: Vec<K>,
    data: Vec<D1>,
    aux_data: Vec<D2>
) -> BoomHashMap2<K, D1, D2>
[src]

Create a new hash map from the parallel arrays keys and values, and aux_values, using a parallel algorithm to construct the Mphf.

Trait Implementations

impl<K: Debug + Hash, D1: Debug, D2: Debug> Debug for BoomHashMap2<K, D1, D2>[src]

impl<'a, K: Hash, D1, D2> IntoIterator for &'a BoomHashMap2<K, D1, D2>[src]

type Item = (&'a K, &'a D1, &'a D2)

The type of the elements being iterated over.

type IntoIter = Boom2Iterator<'a, K, D1, D2>

Which kind of iterator are we turning this into?

Auto Trait Implementations

impl<K, D1, D2> RefUnwindSafe for BoomHashMap2<K, D1, D2> where
    D1: RefUnwindSafe,
    D2: RefUnwindSafe,
    K: RefUnwindSafe
[src]

impl<K, D1, D2> Send for BoomHashMap2<K, D1, D2> where
    D1: Send,
    D2: Send,
    K: Send
[src]

impl<K, D1, D2> Sync for BoomHashMap2<K, D1, D2> where
    D1: Sync,
    D2: Sync,
    K: Sync
[src]

impl<K, D1, D2> Unpin for BoomHashMap2<K, D1, D2> where
    D1: Unpin,
    D2: Unpin,
    K: Unpin
[src]

impl<K, D1, D2> UnwindSafe for BoomHashMap2<K, D1, D2> where
    D1: UnwindSafe,
    D2: UnwindSafe,
    K: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.