1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
use chrono::{DateTime, SecondsFormat, Utc}; use serde::ser::{Serialize, Serializer}; pub struct EbayDateTime(DateTime<Utc>); impl EbayDateTime { pub fn new(v: DateTime<Utc>) -> Self { EbayDateTime(v) } } impl From<DateTime<Utc>> for EbayDateTime { fn from(v: DateTime<Utc>) -> Self { EbayDateTime(v) } } impl Serialize for EbayDateTime { fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer, { self .0 .to_rfc3339_opts(SecondsFormat::Millis, true) .serialize::<S>(serializer) } }