Crates.io | empty-collections |
lib.rs | empty-collections |
version | 0.1.0 |
source | src |
created_at | 2024-08-29 10:32:30.045024 |
updated_at | 2024-08-29 10:32:30.045024 |
description | Correct-by-construction empty collections. |
homepage | |
repository | https://github.com/fosskers/empty-collections |
max_upload_size | |
id | 1355947 |
size | 30,754 |
Empty collections - guaranteed to have nothing!
You may be familiar with the concept of nonempty-collections. The
empty-collections
crate provides the sister-concept; collections which
contain nothing, and never will.
Why, you ask? That is a good question.
use empty_collections::*;
let v: EVec<usize> = EVec::new();
assert!(v.is_empty());
See the documentation for EVec
, EMap
, and ESet
for more examples of their
extensive APIs.
The iterators in this crate are the fastest in the entire Rust ecosystem, able to traverse their entire stream in constant time. Simply amazing.
use empty_collections::*;
let v: EVec<i32> = EVec::new();
assert_eq!(0, v.into_iter().sum());
serde
: Guarantee that collections you send/receive over the wire are empty.