ps 0.1.0

A safe wrapper around `std::mem::transmute`
docs.rs failed to build ps-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

The Philosopher's Stone

This is a proof-of-concept library that lets you cast between arbitrary types in a safe way. In other words, it's a safe std::mem::transmute!

Example

let mut string_map: HashMap<u32, String> = HashMap::new();
string_map.insert(42, "world".into());

let bytes_map: HashMap<u32, Vec<u8>> =
    ps::hash_map_values(ps::string_bytes()).cast(string_map);

assert_eq!(map[42], b"world");