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
//! A library for working with sets, their relationships and operations.
//!
//! The main traits are:
//! - [`Set`] - the most basic trait that all sets must implement to be able to use operations and comparisons, since most require them.
//!
//! ## [Operations](operations)
//! - [`operations::Union`] (∪)
//! - [`operations::UnionAssign`]
//! - [`operations::Intersection`] (∩)
//! - [`operations::IntersectionAssign`]
//! - [`operations::Difference`] (-)
//! - [`operations::DifferenceAssign`]
//! - [`operations::DisjunctiveUnion`] (⊖)
//! - [`operations::DisjunctiveUnionAssign`]
//!
//!
//! ## [Comparisons](comparisons)
//! - [`comparisons::SetEq`] (≡)
//! - [`comparisons::SubsetOf`] (⊆)
//! - [`comparisons::StrictSubsetOf`] (⊂)
//! - [`comparisons::SupersetOf`] (⊇)
//! - [`comparisons::StrictSupersetOf`] (⊃)
//!
//! Feature | Description
//! --- | ---
//! `std` (default) | Adds support for [`std::collections::HashMap`] and [`std::collections::BTreeMap`] as well as adds the types [`collections::WildcardBTreeMap`] and [`collections::WildcardHashMap`].
//! `derive` | Adds derive macros for operations and comparisons.
//! `serde`| Adds [`serde::Serialize`] and [`serde::Deserialize`] support for built-in types.
//! `phf` | Adds operations between [`phf::Map`], [`phf::OrderedMap`] and [`std::collections`] maps.
//!
//! This library was originally designed to create a permission system, but it can be used for any kind of system that requires set-based data structures.
/// The most basic trait that all sets often must implement to be able to use operations and comparisons, since most require them.
pub use Set;