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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//! Empty collections - guaranteed to have nothing!
//!
//! You may be familiar with the concept of [nonempty-collections][ne]. The
//! `empty-collections` crate provides the sister-concept; collections which
//! contain nothing, and never will.
//!
//! Why, you ask? That is a good question.
//!
//! # Examples
//!
//! ```
//! 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.
//!
//! # Iteration
//!
//! 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());
//! ```
//!
//! # Features
//!
//! - `serde`: Guarantee that collections you send/receive over the wire are empty.
//!
//! [ne]: https://lib.rs/crates/nonempty-collections
use PhantomData;
pub use EMap;
pub use ESet;
pub use EVec;
/// An empty [`Iterator`].