Derive Macro enumscribe_derive::EnumDeserialize[][src]

#[derive(EnumDeserialize)]
{
    // Attributes available to this derive:
    #[enumscribe]
}
Expand description

Derives serde::Deserialize for an enum.

The enum will be deserialized from a string. If the input was not a valid string, an error will be returned. You can specify what string should map to a particular variant by using #[enumscribe(str = "foo")], just like the other derive macros in this crate. You can also use #[enumscribe(case_insensitive)] to use case-insensitive matching for a variant, like Unscribe and TryUnscribe.

Also like Unscribe, you can annotate a variant with #[enumscribe(other)]. If included, the other variant will be used to store strings that could not be matched to any other variant. The other variant should have a single field, which should have type String. If an other variant is not included, an error will be returned when a string could not be matched to any variant.

This derive also allows you to use #[enumscribe(ignore)]. No string will ever deserialize to an ignored variant.