From 00906284522c660473237a5d19f19db323ceee6b Mon Sep 17 00:00:00 2001 From: CodeSteak Date: Wed, 8 May 2019 15:03:18 +0200 Subject: [PATCH] change serialization of date to match specs --- server/texture-sync-server/src/model/date.rs | 21 +++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/server/texture-sync-server/src/model/date.rs b/server/texture-sync-server/src/model/date.rs index a4f969d..ce3a3a1 100644 --- a/server/texture-sync-server/src/model/date.rs +++ b/server/texture-sync-server/src/model/date.rs @@ -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, + }) } }