variant-map 0.1.1

defines maps to store variants of enums
Documentation
# variant-map


Enum variants stored in Maps.

Provides different kinds of map-equivalent types to store enum variants into.
As those data structures are maps, they store one value of each variant.
All Maps are *serde::Serialize*-able and *serde::Deserialize*-able

Those maps can be generated easily using the derive macros from [variant_map_derive](/crates/variant-map-derive).
[variant_map_derive](/crates/variant-map-derive) provides a derive macro for a `StructMap` (a struct type with a field per enum variant).
[variant_map_derive](/crates/variant-map-derive) can be included using the `derive` feature of [variant_map](/crates/variant-map)


This crate also provide simple **macros** to lighten the syntax with the `macros` feature.


# Example


 ```
     use variant_map_derive::VariantStore;

     #[derive(VariantStore)]
     enum MyEnum {
         A,
         B(i32),
     }

     fn main() {
         use variant_map::{as_key, as_map};
         let mut map = <as_map!(MyEnum)>::default();
         let _: &MyEnum = map.get(&<as_key!(MyEnum)>::A).unwrap();
         let _: &MyEnum = map.get(&MyEnumKey::A).unwrap();
         map[&MyEnumKey::B] = MyEnum::B(69);
     }
 ```

For more customizability of the [Map][common::MapValue::Map] check out the [variant_map_derive] crate documentation

For more detailed examples check out the [example project](https://github.com/mxyns/variant-map/tree/master/example) on
this crates' [repo](https://github.com/mxyns/variant-map/)