change serialization of date to match specs
This commit is contained in:
parent
d9d4f16c01
commit
0090628452
|
@ -1,4 +1,3 @@
|
|||
use serde::de::Error;
|
||||
use serde::Serialize;
|
||||
use serde::{Deserialize, Deserializer, Serializer};
|
||||
use std::str::FromStr;
|
||||
|
@ -66,10 +65,9 @@ impl Serialize for Date {
|
|||
where
|
||||
S: Serializer,
|
||||
{
|
||||
serializer.serialize_str(&format!(
|
||||
"{:04}-{:02}-{:02}",
|
||||
self.year, self.month, self.day
|
||||
))
|
||||
let data = (self.year, self.month, self.day);
|
||||
|
||||
data.serialize(serializer)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -78,14 +76,13 @@ impl<'de> Deserialize<'de> for Date {
|
|||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let data = String::deserialize(deserializer)?;
|
||||
let data = <(u16, u8, u8)>::deserialize(deserializer)?;
|
||||
|
||||
match Date::from_str(&data) {
|
||||
Ok(date) => Ok(date),
|
||||
Err(_) => Err(D::Error::custom(
|
||||
"Expected a String in this format: YYYY-MM-DD.",
|
||||
)),
|
||||
}
|
||||
Ok(Date {
|
||||
year: data.0,
|
||||
month: data.1,
|
||||
day: data.2,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue