change serialization of date to match specs
This commit is contained in:
		@ -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,
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user