#hash-map #iterator #key #once #collect #collected #btree-map

collect-once-hashmap

A hashmap that can be collected only when there are unique keys in the iterator

2 unstable releases

0.2.0 Sep 1, 2021
0.1.0 Sep 1, 2021

#2292 in Data structures

MPL-2.0 license

8KB
179 lines

collect-once-hashmap

This crate provides a type CollectOnceHashMap (and the same for BTreeMap that can be collected from an iterator just like a normal std::collections::HashMap, but it makes sure that a duplicated key results in an error.

Example:

# use collect_once_hashmap::{CollectOnceHashMap, Error};
let hm = vec![(1, 1), (1, 2)]
    .into_iter()
    .collect::<CollectOnceHashMap<u8, u8>>()
    .into_inner();

assert!(hm.is_err());
assert!(std::matches!(hm, Err(Error::DuplicatedKey(1))));

let bm = vec![(1, 1), (1, 2)]
    .into_iter()
    .collect::<CollectOnceBTreeMap<u8, u8>>()
    .into_inner();

assert!(bm.is_err());
assert!(std::matches!(bm, Err(Error::DuplicatedKey(1))));

License

MPL-2.0 (c) Matthias Beyer

Dependencies

~0.3–0.8MB
~19K SLoC