Module sorted_map

Source
Expand description

Safe sorted map using Vec

§About

   use dsa_rust::associative::sorted_map::SortedMap;

   // Establishes a baseline map
   let list = vec![
       ("Bobson", 29),
       ("Brain", 39),
       ("Dangus", 34),
       ("Dingus", 34),
       ("Peter", 41),
       ("Pingus", 45),
       ("Remus", 27),
       ("Romulus", 28),
   ];
   let mut map = SortedMap::new();

   assert_eq!(map.cap(), 0);
   assert_eq!(map.entries(), 0);
   for e in list {
       eprintln!("Inserting {}", &e.0);
       map.put(e.0, e.1);
   }
   assert_eq!(map.cap(), 8);
   assert_eq!(map.entries(), 8);

   // Tests the get function
   let age = map.get("Peter");
   assert!(age.is_some());
   assert_eq!(age.unwrap(), &41);

   // Tests replacing a value for an existing key
   let old = map.put("Peter", 42);
   assert_eq!(*old.unwrap().value(), 41);
   let age = map.get("Peter");
   assert!(age.is_some());
   assert_eq!(age.unwrap(), &42);
   assert_eq!(map.entries(), 8);

   // Tests the remove function
   let removed = map.remove("Pingus");
   assert!(removed.is_some());
   assert_eq!(*removed.unwrap().value(), 45);
   assert_eq!(map.entries(), 7);

Structs§

Entry
SortedMap