summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 2af017ba9e6f74348a5bd76c20a0ddb89e811729 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 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:

```rust
# 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