[−][src]Crate non_empty_collections
Non-empty hash map and hash set implementations based on indexmap::IndexMap
and
indexmap::IndexSet
respectively, which are guaranteed to be non-empty by the type system of
Rust.
Currently not all the methods of IndexMap or IndexSet are ported to NonEmptyIndexMap and NonEmptyIndexSet, so if you are missing something, PRs are welcome! :)
Right now both implementations are too naïve: non-emptiness is achieved by declaring map and set types as a pair of an element and the rest of the collection. While the idea itself is not bad, it adds an additional overhead on basically every operation since we have to execute everything twice: on the first element and then on the rest.
Both collections are coming with serde de- and serializers, but if you don't need them and want
to save some space and/or compilation time you can always disable it by disabling a feature
serde_support
(which is on by default).
Re-exports
pub use index_map::NonEmptyIndexMap; |
pub use index_set::NonEmptyIndexSet; |
Modules
index_map | Non-empty hash map implementation. |
index_set | Non-empty hash set implementation. |
Enums
Error | An error that might happen during transactions. |