bimap-rs: a fast two-way bijective map for Rust
Examples
use bimap::Bimap;
let mut elements = Bimap::new();
elements.insert("hydrogen", "H");
elements.insert("carbon", "C");
elements.insert("bromine", "Br");
elements.insert("neodymium", "Nd");
assert_eq!(elements.get_by_left(&"bromine"), Some(&"Br"));
assert_eq!(elements.get_by_left(&"oxygen"), None);
assert_eq!(elements.get_by_right(&"C"), Some(&"carbon"));
assert_eq!(elements.get_by_right(&"Al"), None);
assert!(elements.contains_left(&"hydrogen"));
assert!(!elements.contains_right(&"He"));
assert_eq!(elements.remove_by_left(&"neodymium"), Some(("neodymium", "Nd")));
assert_eq!(elements.remove_by_right(&"Nd"), None);
for (left, right) in &elements {
println!("the chemical symbol for {} is {}", left, right);
}