pub struct NameSorter<T> { /* fields omitted */ }
A type used to sort names by length, then prefixes, to speed
up lookups.
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);