✒️ enser
Enum Serialization with Tag
# serde_yaml -- every variant starts with a !Tag
enser:
-- Tbd
-- None
+- !Tbd null
+- !None null
- !Some 123
- !Named
value: 456
# serde_json -- every variant is an object
{
"enser": [
- "Tbd",
- "None",
+ { "Tbd": null },
+ { "None": null },
{ "Some": 123 },
{ "Named": { "value": 456 } }
]
}
Usage
Add the following to Cargo.toml
= "0.1.4"
// <-- just add this
// Note: It *must* come above `#[derive(Clone, Deserialize, Serialize)]`
Generics
This will automatically work for generic types:
However, it also adds a Clone bound to each type parameter, so all impl blocks will require the type parameters to have a Clone bound.
If you can find a way for the generics example to work without causing the Clone bound propagation, then please let me know / submit a pull request!
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.