From f12a839d6e6bdd29a86ac52d5de836519a41aaf0 Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 26 Oct 2026 05:38:41 +0100 Subject: wrap unix timestamps in newtype --- src/units.rs | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) (limited to 'src/units.rs') diff --git a/src/units.rs b/src/units.rs index 5128b6e..cec5ffc 100644 --- a/src/units.rs +++ b/src/units.rs @@ -162,28 +162,13 @@ pub(crate) mod duration_option { } } -/// Serde for an optional `Duration` in a request (JSON body or query string), read as -/// [`duration_option`] reads it; absent is `None`. Use with `#[serde(default)]`. -pub(crate) mod optional_duration { - use std::time::Duration; - - use serde::{Deserializer, Serializer}; - - pub(crate) fn serialize( - value: &Option, - s: S, - ) -> Result { - match value { - Some(duration) => super::duration_option::serialize(duration, s), - None => s.serialize_none(), - } - } - - pub(crate) fn deserialize<'de, D: Deserializer<'de>>( - d: D, - ) -> Result, D::Error> { - super::duration_option::deserialize(d).map(Some) - } +/// Reads an optional `Duration` in a request (JSON body or query string) as +/// [`duration_option`] reads it; absent is `None`. Use as +/// `#[serde(default, deserialize_with = "crate::units::optional_duration")]`. +pub(crate) fn optional_duration<'de, D: serde::Deserializer<'de>>( + d: D, +) -> Result, D::Error> { + duration_option::deserialize(d).map(Some) } /// Serde for a size option: a string as [`parse_size`] reads it, or a number of bytes; -- cgit v1.3.1