Struct binjs_meta::util::name_sorter::NameSorter[][src]

pub struct NameSorter<T> { /* fields omitted */ }

A type used to sort names by length, then prefixes, to speed up lookups.

Methods

impl<T> NameSorter<T>
[src]

Return the number of items in the sorter.

Insert a value in a sorter.

let mut sorter = binjs_meta::util::name_sorter::NameSorter::new();
assert_eq!(sorter.len(), 0);

assert!(sorter.insert("abcd", 0).is_none());
assert_eq!(sorter.len(), 1);
assert_eq!(*sorter.get("abcd").unwrap(), 0);
assert!(sorter.get("dbca").is_none());
assert!(sorter.get("").is_none());

assert!(sorter.insert("dcba", 1).is_none());
assert_eq!(sorter.len(), 2);
assert_eq!(*sorter.get("abcd").unwrap(), 0);
assert_eq!(*sorter.get("dcba").unwrap(), 1);
assert!(sorter.get("").is_none());

assert_eq!(sorter.insert("abcd", 3).unwrap(), 0);
assert_eq!(sorter.len(), 2);
assert_eq!(*sorter.get("abcd").unwrap(), 3);
assert_eq!(*sorter.get("dcba").unwrap(), 1);
assert!(sorter.get("").is_none());

assert!(sorter.insert("", 4).is_none());
assert_eq!(sorter.len(), 3);
assert_eq!(*sorter.get("abcd").unwrap(), 3);
assert_eq!(*sorter.get("dcba").unwrap(), 1);
assert_eq!(*sorter.get("").unwrap(), 4);

assert_eq!(sorter.insert("", 5).unwrap(), 4);
assert_eq!(sorter.len(), 3);
assert_eq!(*sorter.get("abcd").unwrap(), 3);
assert_eq!(*sorter.get("dcba").unwrap(), 1);
assert_eq!(*sorter.get("").unwrap(), 5);

Auto Trait Implementations

impl<T> Send for NameSorter<T> where
    T: Send

impl<T> Sync for NameSorter<T> where
    T: Sync