Expand description
kvp
This crate is designed to provide a type, KeyValuePair<TKey, TValue>
,
which can be used when someone wishes to “tag” a value with additional data,
while keeping its functional traits (PartialEq
, Eq
, PartialOrd
, Ord
, Hash
) entirely on the key,
disregarding the tagged data. This can be used, for example, to have a BinaryHeap
which acts more similarly
to a HashMap
in its ability to store key-value data.
let heap = BinaryHeap::new();
heap.push(KeyValuePair { key: 50, value: "Hey, here's an associated value" })
// You can also use ::new syntax
heap.push(KeyValuePair::new(0, "another bit of associated data!"));
heap.push(KeyValuePair::new(22, "voila"));
assert_matches!(heap.pop(), Some(50));
assert_matches!(heap.pop(), Some(22));
assert_matches!(heap.pop(), Some(0));