stacked_type_map 0.1.0

Compile time map of any type.
Documentation
  • Coverage
  • 3.7%
    1 out of 27 items documented1 out of 17 items with examples
  • Size
  • Source code size: 13.96 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.82 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 9s Average build duration of successful builds.
  • all releases: 9s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Stock84-dev/stacked_type_map
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • Stock84-dev

stacked_type_map

version downloads docs licence

This map doesn't use any allocation or hashing.

Example

use stacked_type_map::{StackedMap, Map, Removed};

let map = StackedMap;
assert_eq!(map.len(), 0);
let map = map.insert(1).insert(2).insert(3);
assert_eq!(map.get::<String>(), None);
assert_eq!(map.get::<i32>(), Some(&3));
assert_eq!(map.len(), 1);
let map2 = map.clone();
let map3 = map.clone();
assert!(matches!(map.remove::<String>(), Removed::NotFound(_)));
assert!(matches!(
    map2.remove::<i32>(),
    Removed::Removed { map: _, value: 3 }
));
let map = map3.insert(());
let map = map.insert("hi");
assert_eq!(
    map.type_id_iter().collect::<Vec<_>>(),
    vec![TypeId::of::<&'static str>(), TypeId::of::<()>()]
);