pub struct PersistentArrayMap { /* private fields */ }Expand description
A small immutable map stored as a flat key/value vector.
Linear-scan lookup is fast for small maps (≤8 entries) and avoids the
overhead of hashing. Once the map exceeds THRESHOLD entries an assoc
returns a PersistentHashMap instead.
Implementations§
Source§impl PersistentArrayMap
impl PersistentArrayMap
pub fn count(&self) -> usize
pub fn is_empty(&self) -> bool
Sourcepub fn get(&self, key: &Value) -> Option<&Value>
pub fn get(&self, key: &Value) -> Option<&Value>
Look up key using Clojure value equality. O(n).
pub fn contains_key(&self, key: &Value) -> bool
Sourcepub fn assoc(&self, key: Value, value: Value) -> AssocResult
pub fn assoc(&self, key: Value, value: Value) -> AssocResult
Return a new map with key associated to value.
Promotes to Promote when the count would exceed THRESHOLD.
Sourcepub fn iter(&self) -> ArrayMapIter<'_> ⓘ
pub fn iter(&self) -> ArrayMapIter<'_> ⓘ
Iterate over (key, value) pairs.
Sourcepub fn from_flat_entries(entries: Vec<Value>) -> AssocResult
pub fn from_flat_entries(entries: Vec<Value>) -> AssocResult
Build directly from a pre-evaluated flat entries vector [k0, v0, k1, v1, ...].
This avoids intermediate allocations when the entries are already known.
Caller must ensure even length. Does NOT check for duplicate keys —
if duplicates are possible, use from_pairs instead.
Sourcepub fn from_pairs<I: IntoIterator<Item = (Value, Value)>>(
iter: I,
) -> AssocResult
pub fn from_pairs<I: IntoIterator<Item = (Value, Value)>>( iter: I, ) -> AssocResult
Build from an iterator of (key, value) pairs.
Pairs are inserted left-to-right; later values win on duplicate keys.
Trait Implementations§
Source§impl Clone for PersistentArrayMap
impl Clone for PersistentArrayMap
Source§fn clone(&self) -> PersistentArrayMap
fn clone(&self) -> PersistentArrayMap
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more