(deserializer: D)
| 103 | } |
| 104 | |
| 105 | fn deserialize_milliseconds<'de, D>(deserializer: D) -> Result<DateTime<Utc>, D::Error> |
| 106 | where |
| 107 | D: Deserializer<'de>, |
| 108 | { |
| 109 | let (whole, frac) = normalize_timestamp(deserializer)?; |
| 110 | assert_eq!(frac, 0); |
| 111 | let seconds: f64 = whole as f64 / 1000.0; |
| 112 | let milliseconds: u32 = (seconds.fract() * 1000f64) as u32; |
| 113 | let nanos = milliseconds * 1_000_000; |
| 114 | Utc.timestamp_opt(seconds as i64, nanos) |
| 115 | .latest() |
| 116 | .ok_or_else(|| D::Error::custom("invalid timestamp")) |
| 117 | } |
| 118 | |
| 119 | fn serialize_seconds<S>(date: &DateTime<Utc>, serializer: S) -> Result<S::Ok, S::Error> |
| 120 | where |
nothing calls this directly
no test coverage detected