key_set 0.1.0

KeySet representing concepts of All, None, Some(list), and AllExceptSome(list), with basic set calculations (intersection, difference, inverse).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use key_set::KeySet;

#[test]
fn test_invert() {
    let ks_none: KeySet<i32> = KeySet::None;
    let ks_all: KeySet<i32> = KeySet::All;
    let ks_some: KeySet<i32> = KeySet::Some(vec![1, 2, 3]);
    let ks_aes: KeySet<i32> = KeySet::AllExceptSome(vec![1, 2, 3]);

    assert_eq!(ks_all.invert(), KeySet::None);
    assert_eq!(ks_none.invert(), KeySet::All);
    assert_eq!(ks_aes.invert(), KeySet::Some(vec![1, 2, 3]));
    assert_eq!(ks_some.invert(), KeySet::AllExceptSome(vec![1, 2, 3]));
}