pub struct StrictMap<K, V, const MIN_LEN: u16 = 0>(_)
where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode;
Implementations§
source§impl<K, V> StrictMap<K, V, 0>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
impl<K, V> StrictMap<K, V, 0>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
source§impl<K, V, const MIN_LEN: u16> StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
impl<K, V, const MIN_LEN: u16> StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
Methods from Deref<Target = BTreeMap<K, V>>§
1.0.0 · sourcepub fn get<Q>(&self, key: &Q) -> Option<&V>where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
pub fn get<Q>(&self, key: &Q) -> Option<&V>where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
Returns a reference to the value corresponding to the key.
The key may be any borrowed form of the map’s key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "a");
assert_eq!(map.get(&1), Some(&"a"));
assert_eq!(map.get(&2), None);
1.40.0 · sourcepub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
pub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)>where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
Returns the key-value pair corresponding to the supplied key.
The supplied key may be any borrowed form of the map’s key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "a");
assert_eq!(map.get_key_value(&1), Some((&1, &"a")));
assert_eq!(map.get_key_value(&2), None);
1.66.0 · sourcepub fn first_key_value(&self) -> Option<(&K, &V)>where
K: Ord,
pub fn first_key_value(&self) -> Option<(&K, &V)>where
K: Ord,
Returns the first key-value pair in the map. The key in this pair is the minimum key in the map.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
assert_eq!(map.first_key_value(), None);
map.insert(1, "b");
map.insert(2, "a");
assert_eq!(map.first_key_value(), Some((&1, &"b")));
1.66.0 · sourcepub fn last_key_value(&self) -> Option<(&K, &V)>where
K: Ord,
pub fn last_key_value(&self) -> Option<(&K, &V)>where
K: Ord,
Returns the last key-value pair in the map. The key in this pair is the maximum key in the map.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "b");
map.insert(2, "a");
assert_eq!(map.last_key_value(), Some((&2, &"a")));
1.0.0 · sourcepub fn contains_key<Q>(&self, key: &Q) -> boolwhere
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
pub fn contains_key<Q>(&self, key: &Q) -> boolwhere
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
Returns true
if the map contains a value for the specified key.
The key may be any borrowed form of the map’s key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "a");
assert_eq!(map.contains_key(&1), true);
assert_eq!(map.contains_key(&2), false);
1.17.0 · sourcepub fn range<T, R>(&self, range: R) -> Range<'_, K, V>where
T: Ord + ?Sized,
K: Borrow<T> + Ord,
R: RangeBounds<T>,
pub fn range<T, R>(&self, range: R) -> Range<'_, K, V>where
T: Ord + ?Sized,
K: Borrow<T> + Ord,
R: RangeBounds<T>,
Constructs a double-ended iterator over a sub-range of elements in the map.
The simplest way is to use the range syntax min..max
, thus range(min..max)
will
yield elements from min (inclusive) to max (exclusive).
The range may also be entered as (Bound<T>, Bound<T>)
, so for example
range((Excluded(4), Included(10)))
will yield a left-exclusive, right-inclusive
range from 4 to 10.
Panics
Panics if range start > end
.
Panics if range start == end
and both bounds are Excluded
.
Examples
Basic usage:
use std::collections::BTreeMap;
use std::ops::Bound::Included;
let mut map = BTreeMap::new();
map.insert(3, "a");
map.insert(5, "b");
map.insert(8, "c");
for (&key, &value) in map.range((Included(&4), Included(&8))) {
println!("{key}: {value}");
}
assert_eq!(Some((&5, &"b")), map.range(4..).next());
1.0.0 · sourcepub fn iter(&self) -> Iter<'_, K, V>
pub fn iter(&self) -> Iter<'_, K, V>
Gets an iterator over the entries of the map, sorted by key.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(3, "c");
map.insert(2, "b");
map.insert(1, "a");
for (key, value) in map.iter() {
println!("{key}: {value}");
}
let (first_key, first_value) = map.iter().next().unwrap();
assert_eq!((*first_key, *first_value), (1, "a"));
1.0.0 · sourcepub fn keys(&self) -> Keys<'_, K, V>
pub fn keys(&self) -> Keys<'_, K, V>
Gets an iterator over the keys of the map, in sorted order.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut a = BTreeMap::new();
a.insert(2, "b");
a.insert(1, "a");
let keys: Vec<_> = a.keys().cloned().collect();
assert_eq!(keys, [1, 2]);
1.0.0 · sourcepub fn values(&self) -> Values<'_, K, V>
pub fn values(&self) -> Values<'_, K, V>
Gets an iterator over the values of the map, in order by key.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut a = BTreeMap::new();
a.insert(1, "hello");
a.insert(2, "goodbye");
let values: Vec<&str> = a.values().cloned().collect();
assert_eq!(values, ["hello", "goodbye"]);
Trait Implementations§
source§impl<K, V, const MIN_LEN: u16> Clone for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + Clone,
V: Clone + StrictEncode + StrictDecode + Clone,
impl<K, V, const MIN_LEN: u16> Clone for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + Clone,
V: Clone + StrictEncode + StrictDecode + Clone,
source§impl<K, V, const MIN_LEN: u16> Debug for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + Debug,
V: Clone + StrictEncode + StrictDecode + Debug,
impl<K, V, const MIN_LEN: u16> Debug for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + Debug,
V: Clone + StrictEncode + StrictDecode + Debug,
source§impl<K, V> Default for StrictMap<K, V, 0>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
impl<K, V> Default for StrictMap<K, V, 0>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
source§impl<K, V, const MIN_LEN: u16> Deref for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
impl<K, V, const MIN_LEN: u16> Deref for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
source§impl<K, V, const MIN_LEN: u16> Hash for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + Hash,
V: Clone + StrictEncode + StrictDecode + Hash,
impl<K, V, const MIN_LEN: u16> Hash for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + Hash,
V: Clone + StrictEncode + StrictDecode + Hash,
source§impl<'me, K, V, const MIN_LEN: u16> IntoIterator for &'me StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
impl<'me, K, V, const MIN_LEN: u16> IntoIterator for &'me StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
source§impl<K, V, const MIN_LEN: u16> Ord for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + Ord,
V: Clone + StrictEncode + StrictDecode + Ord,
impl<K, V, const MIN_LEN: u16> Ord for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + Ord,
V: Clone + StrictEncode + StrictDecode + Ord,
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl<K, V, const MIN_LEN: u16> PartialEq<StrictMap<K, V, MIN_LEN>> for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + PartialEq,
V: Clone + StrictEncode + StrictDecode + PartialEq,
impl<K, V, const MIN_LEN: u16> PartialEq<StrictMap<K, V, MIN_LEN>> for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + PartialEq,
V: Clone + StrictEncode + StrictDecode + PartialEq,
source§impl<K, V, const MIN_LEN: u16> PartialOrd<StrictMap<K, V, MIN_LEN>> for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + PartialOrd,
V: Clone + StrictEncode + StrictDecode + PartialOrd,
impl<K, V, const MIN_LEN: u16> PartialOrd<StrictMap<K, V, MIN_LEN>> for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode + PartialOrd,
V: Clone + StrictEncode + StrictDecode + PartialOrd,
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl<K, V, const MIN_LEN: u16> StrictDecode for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
impl<K, V, const MIN_LEN: u16> StrictDecode for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
source§fn strict_decode<D: Read>(d: D) -> Result<Self, Error>
fn strict_decode<D: Read>(d: D) -> Result<Self, Error>
std::io::Read
instance; must either
construct an instance or return implementation-specific error type.source§fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
StrictDecode::strict_decode
. If there are some data remains in the
buffer once deserialization is completed, fails with
Error::DataNotEntirelyConsumed
. Use io::Cursor
over the buffer and
StrictDecode::strict_decode
to avoid such failures.source§fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
path
and reconstructs object from it. Fails
with Error::DataNotEntirelyConsumed
if file contains remaining
data after the object reconstruction.source§impl<K, V, const MIN_LEN: u16> StrictEncode for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
impl<K, V, const MIN_LEN: u16> StrictEncode for StrictMap<K, V, MIN_LEN>where
K: Clone + Eq + Ord + Debug + StrictEncode + StrictDecode,
V: Clone + StrictEncode + StrictDecode,
source§fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>
fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>
std::io::Write
instance; must return result
with either amount of bytes encoded – or implementation-specific
error type.source§fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
StrictEncode::strict_encode
function