Line data Source code
1 : use semver::Version;
2 : use serde::{self, Deserialize, Deserializer, Serializer};
3 :
4 20 : pub fn serialize<S>(version: &Version, serializer: S) -> Result<S::Ok, S::Error>
5 20 : where
6 20 : S: Serializer,
7 : {
8 20 : let s = version.to_string();
9 20 : serializer.serialize_str(&s)
10 20 : }
11 3 : pub fn deserialize<'de, D>(deserializer: D) -> Result<Version, D::Error>
12 3 : where
13 3 : D: Deserializer<'de>,
14 : {
15 3 : let s = String::deserialize(deserializer)?;
16 3 : let v = Version::parse(&s).unwrap_or(Version::new(0, 0, 0));
17 3 : Ok(v)
18 3 : }
|