LCOV - code coverage report
Current view: top level - dashql-pack/src - serde_date.rs Coverage Total Hit
Test: DashQL 6e74948 Lines: 100.0 % 13 13
Test Date: 2026-11-06 17:46:50

            Line data    Source code
       1              : use chrono::{DateTime, NaiveDateTime, Utc};
       2              : use serde::{self, Deserialize, Deserializer, Serializer};
       3              : 
       4              : pub const FORMAT: &'static str = "%Y-%m-%dT%H:%M:%SZ";
       5              : 
       6           20 : pub fn serialize<S>(date: &DateTime<Utc>, serializer: S) -> Result<S::Ok, S::Error>
       7           20 : where
       8           20 :     S: Serializer,
       9              : {
      10           20 :     let s = format!("{}", date.format(FORMAT));
      11           20 :     serializer.serialize_str(&s)
      12           20 : }
      13            3 : pub fn deserialize<'de, D>(deserializer: D) -> Result<DateTime<Utc>, D::Error>
      14            3 : where
      15            3 :     D: Deserializer<'de>,
      16              : {
      17            3 :     let s = String::deserialize(deserializer)?;
      18            3 :     let dt = NaiveDateTime::parse_from_str(&s, FORMAT).map_err(serde::de::Error::custom)?;
      19            2 :     Ok(DateTime::<Utc>::from_naive_utc_and_offset(dt, Utc))
      20            3 : }
        

Generated by: LCOV version 2.0-1