labelled_enum/
lib.rs

1pub use labelled_enum_derive::*;
2
3// Working with serde
4#[cfg(feature = "serde")]
5pub mod serde_plugin {
6    use serde::*;
7    use std::str::FromStr;
8
9    pub fn serialize<S>(data: &impl ToString, serializer: S) -> Result<S::Ok, S::Error>
10    where
11        S: Serializer,
12    {
13        serializer.serialize_str(&data.to_string())
14    }
15
16    pub fn deserialize<'de, E, D>(deserializer: D) -> Result<E, D::Error>
17    where
18        D: Deserializer<'de>,
19        E: FromStr<Err = String>,
20    {
21        let s = String::deserialize(deserializer)?;
22        FromStr::from_str(&s).map_err(de::Error::custom)
23    }
24}