kumo_dmarc/types/
date_range.rs

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
29
use chrono::{DateTime, Utc};
use instant_xml::ToXml;

#[derive(Debug, Eq, PartialEq)]
pub struct DateRange {
    begin: DateTime<Utc>,
    end: DateTime<Utc>,
}

impl ToXml for DateRange {
    fn serialize<W: std::fmt::Write + ?Sized>(
        &self,
        field: Option<instant_xml::Id<'_>>,
        serializer: &mut instant_xml::Serializer<W>,
    ) -> Result<(), instant_xml::Error> {
        #[derive(ToXml)]
        #[xml(rename = "date_range")]
        struct Timestamps {
            begin: i64,
            end: i64,
        }

        Timestamps {
            begin: self.begin.timestamp(),
            end: self.end.timestamp(),
        }
        .serialize(field, serializer)
    }
}