cargo serde 1.0.97

latest releases: 1.0.200, 1.0.199, 1.0.198...
4 years ago
  • Introduce serde(try_from = "...") attribute to derive Deserialize based on a given implementation of std::convert::TryFrom (#1526, thanks @fanzeyi)

    #[derive(Deserialize)]
    #[serde(try_from = "u32")]
    enum N {
        Zero,
        One,
        Two,
    }
    
    impl TryFrom<u32> for N {
        type Error = String;
    
        fn try_from(u: u32) -> Result<Self, Self::Error> {
            match u {
                0 => Ok(Self::Zero),
                1 => Ok(Self::One),
                2 => Ok(Self::Two),
                other => Err(format!("out of range: {}", other)),
            }
        }
    }

Don't miss a new serde release

NewReleases is sending notifications on new releases.