indexmap - Rust (original) (raw)

Expand description

IndexMap is a hash table where the iteration order of the key-value pairs is independent of the hash values of the keys.

IndexSet is a corresponding hash set using the same implementation and with similar properties.

§Highlights

IndexMap and IndexSet are drop-in compatible with the std HashMapand HashSet, but they also have some features of note:

§Feature Flags

To reduce the amount of compiled code in the crate by default, certain features are gated behind feature flags. These allow you to opt in to (or out of) functionality. Below is a list of the features available in this crate.

Note: only the std feature is enabled by default.

§Alternate Hashers

IndexMap and IndexSet have a default hasher typeS = RandomState, just like the standard HashMap and HashSet, which is resistant to HashDoS attacks but not the most performant. Type aliases can make it easier to use alternate hashers:

use fnv::FnvBuildHasher;
use indexmap::{IndexMap, IndexSet};

type FnvIndexMap<K, V> = IndexMap<K, V, FnvBuildHasher>;
type FnvIndexSet<T> = IndexSet<T, FnvBuildHasher>;

let std: IndexSet<i32> = (0..100).collect();
let fnv: FnvIndexSet<i32> = (0..100).collect();
assert_eq!(std, fnv);

§Rust Version

This version of indexmap requires Rust 1.63 or later.

The indexmap 2.x release series will use a carefully considered version upgrade policy, where in a later 2.x version, we will raise the minimum required Rust version.

§No Standard Library Targets

This crate supports being built without std, requiring alloc instead. This is chosen by disabling the default “std” cargo feature, by addingdefault-features = false to your dependency specification.

pub use crate::map::[IndexMap](map/struct.IndexMap.html "struct indexmap::map::IndexMap");

pub use crate:📐:[IndexSet](set/struct.IndexSet.html "struct indexmap:📐:IndexSet");

map

IndexMap is a hash table where the iteration order of the key-value pairs is independent of the hash values of the keys.

set

A hash set implemented using IndexMap

indexmapstd

Create an IndexMap from a list of key-value pairs

indexmap_with_default

Create an IndexMap from a list of key-value pairs and a BuildHasherDefault-wrapped custom hasher.

indexsetstd

Create an IndexSet from a list of values

indexset_with_default

Create an IndexSet from a list of values and a BuildHasherDefault-wrapped custom hasher.

TryReserveError

The error type for try_reserve methods.

GetDisjointMutError

The error type returned by get_disjoint_indices_mut.

Equivalent

Key equivalence trait.