[−][src]Function oauth2::helpers::deserialize_untagged_enum_case_insensitive
pub fn deserialize_untagged_enum_case_insensitive<'de, T, D>(
deserializer: D
) -> Result<T, D::Error> where
T: Deserialize<'de>,
D: Deserializer<'de>,
Serde case-insensitive deserializer for an untagged enum
.
This function converts values to lowercase before deserializing as the enum
. Requires the
#[serde(rename_all = "lowercase")]
attribute to be set on the enum
.
Example
In example below, the following JSON values all deserialize to
GroceryBasket { fruit_item: Fruit::Banana }
:
{"fruit_item": "banana"}
{"fruit_item": "BANANA"}
{"fruit_item": "Banana"}
Note: this example does not compile automatically due to Rust issue #29286.
use serde::Deserialize; #[derive(Deserialize)] #[serde(rename_all = "lowercase")] enum Fruit { Apple, Banana, Orange, } #[derive(Deserialize)] struct GroceryBasket { #[serde(deserialize_with = "helpers::deserialize_untagged_enum_case_insensitive")] fruit_item: Fruit, }