fn main() {
use hashvec::*;
let mut hashvec: HashVec<&'static str, &'static str> = hashvec![
("Doug", "Kobold"),
("Skye", "Hyena"),
("Lee", "Shiba"),
("Sock", "Man"),
("Salad", "Wolf"),
("Finn", "Human")
];
hashvec.insert("Jake", "Dog");
hashvec.push(("Susie", "Squid"));
match hashvec.get(&"Finn") {
Some(value) => {
assert_eq!(*value, "Human");
},
None => {}
}
let lee_value = hashvec[2];
assert_eq!(lee_value, ("Lee", "Shiba"));
let lee_index = hashvec.index(&"Lee").unwrap();
assert_eq!(lee_index, 2);
let hashvec_length = hashvec.len();
assert_eq!(hashvec_length, 8);
hashvec.rename(&"Salad", "Caesar");
assert_eq!(hashvec[4], ("Caesar", "Wolf"));
match hashvec.get_mut(&"Sock") {
Some(value) => {
*value = "Guinea Pig";
},
None => {}
}
assert_eq!(*hashvec.get(&"Sock").unwrap(), "Guinea Pig");
hashvec.remove_key(&"Doug");
assert_eq!(hashvec.get(&"Doug"), None);
hashvec.swap_keys(&"Lee", &"Skye");
assert_eq!(hashvec.index(&"Lee").unwrap(), 0);
assert_eq!(hashvec.index(&"Skye").unwrap(), 1);
hashvec.swap_indices(0, 1);
assert_eq!(hashvec[0], ("Skye", "Hyena"));
assert_eq!(hashvec[1], ("Lee", "Shiba"));
for (k, v) in hashvec.into_iter() {
println!("{} is a {}!", k, v);
}
let last_entry = hashvec.pop();
assert_eq!(last_entry.unwrap(), ("Susie", "Squid"));
hashvec.clear();
}