settrie 0.1.3

Fast subset and superset queries
Documentation
  • Coverage
  • 90.91%
    10 out of 11 items documented0 out of 10 items with examples
  • Size
  • Source code size: 39.22 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 434.98 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 9s Average build duration of successful builds.
  • all releases: 9s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • miochris/settrie
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • miochris

Check Lints Test Coverage

settrie

Fast subset and superset queries. It implemented Iztok Savnik's proposed data structure set-trie.

One difference from Iztok Savnik's data structure is, this implementation doesn't memorize a set which ends in a non-leaf node of existing set.

use settrie::SetTrie;
fn main(){
    let mut set_trie = SetTrie::new();
    set_trie.insert_set(&[1, 2, 3]);
    set_trie.insert_set(&[1, 2, 3, 5]);
    set_trie.insert_set(&[1, 2, 4]);
    assert_eq!(
        set_trie.get_supersets(&[1, 2]),
        vec![vec![1, 2, 3, 5], vec![1, 2, 4]]
    );
    assert_eq!(set_trie.exist_subset(&vec![1, 2, 3, 5]), true);
    assert_eq!(set_trie.exist_superset(&vec![1, 2]), true);
    assert_eq!(
        set_trie.get_all_supersets(),
        vec![vec![1, 2, 3, 5], vec![1, 2, 4]]
    );
    assert_eq!(set_trie.get_supersets(&[1, 3, 5]), vec![vec![1, 2, 3, 5]]);
    assert_eq!(
        set_trie.get_subsets(&[1, 2, 3, 5, 7]),
        vec![vec![1, 2, 3, 5]]
    );
}