summaryrefslogtreecommitdiffstats
path: root/src/units.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-26 05:38:41 +0100
committertv <tv@krebsco.de>2026-10-26 05:38:41 +0100
commitf12a839d6e6bdd29a86ac52d5de836519a41aaf0 (patch)
treeb34da34a22292793c991b15a95908f6cd78bb70b /src/units.rs
parent504435444c65efc59c0f7c6881991296258538a7 (diff)
wrap unix timestamps in newtype
Diffstat (limited to 'src/units.rs')
-rw-r--r--src/units.rs29
1 files changed, 7 insertions, 22 deletions
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<S: Serializer>(
- value: &Option<Duration>,
- s: S,
- ) -> Result<S::Ok, S::Error> {
- 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<Option<Duration>, 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<Option<Duration>, 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;