ordmask 2.2.0

A library for efficient range-based set operations and membership checking
Documentation
use ordmask::{OrdMask, ordmask};

#[test]
fn test_basic_ordmask() {
    let mask = ordmask![1, 2, 3];
    assert_eq!(mask, OrdMask::from(vec![1, 2, 3]));

    let mask = ordmask![0, 2, 4];
    assert_eq!(mask, OrdMask::from(vec![0, 2, 4]));
}

#[test]
fn test_empty_ordmask() {
    let mask: OrdMask<u64> = ordmask![];
    assert_eq!(mask, OrdMask::empty());
    let mask = ordmask![<i32>];
    assert_eq!(mask, OrdMask::empty());
}

#[test]
fn test_reversed_ordmask() {
    let mask = ordmask![.., 1, 2, 3];
    assert_eq!(mask, OrdMask::from_complement(vec![1, 2, 3]));
}

#[test]
fn test_universal_ordmask() {
    let mask: OrdMask<i32> = ordmask![..];
    assert_eq!(mask, OrdMask::universal());

    let mask = ordmask![<i32> ..];
    assert_eq!(mask, OrdMask::universal());
}

#[test]
fn test_ordmask_with_type() {
    let mask = ordmask![<u32>];
    assert_eq!(mask, OrdMask::empty());
    let mask = ordmask![<u32> ..];
    assert_eq!(mask, OrdMask::universal());
    let mask = ordmask![<u32> 1];
    assert_eq!(mask, OrdMask::from(vec![1]));
    let mask = ordmask![<u32> 1, 2];
    assert_eq!(mask, OrdMask::from(vec![1, 2]));
    let mask = ordmask![<u32> .., 1];
    assert_eq!(mask, OrdMask::from_complement(vec![1]));
    let mask = ordmask![<u32> .., 1, 2];
    assert_eq!(mask, OrdMask::from_complement(vec![1, 2]));
}

#[test]
#[should_panic]
fn test_ordmask_should_panic() {
    let _ = ordmask![1, 0];
}