chiark / gitweb /
clock: Move timespec_serde into utils
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 17 Mar 2021 17:32:35 +0000 (17:32 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 19 Mar 2021 20:05:30 +0000 (20:05 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/clock.rs
src/utils.rs

index eaf070d7c85f8cb96e830f343f1dc38ac0a2768f..09a5c5caae2a34a05d211ec8fa78b50368825567 100644 (file)
@@ -104,24 +104,6 @@ struct Running {
   user: User,
 }
 
-mod timespec_serde {
-  use super::*;
-
-  #[derive(Serialize, Deserialize)]
-  struct Timespec(i64, u32);
-
-  #[throws(S::Error)]
-  pub fn serialize<S:Serializer>(v: &TimeSpec, s: S) -> S::Ok {
-    let v = Timespec(v.tv_sec().into(), v.tv_nsec().try_into().unwrap());
-    Serialize::serialize(&v, s)?
-  }
-  #[throws(D::Error)]
-  pub fn deserialize<'de, D:Deserializer<'de>>(d: D) -> TimeSpec {
-    let Timespec(sec, nsec) = Deserialize::deserialize(d)?;
-    libc::timespec { tv_sec: sec.into(), tv_nsec: nsec.into() }.into()
-  }
-}
-
 impl ChessClock {
   fn time(&self) -> TimeSpec {
     TVL::seconds(self.time.into())
index a84feab9f15021b9d0845356341eeb6aa4eb3b75..6702b19473b4643e22eb61e957ac3e0b17e52167 100644 (file)
@@ -233,6 +233,24 @@ impl CheckedArithMul<f64> for f64 {
   checked_float!{checked_mul(, rhs: Self)  * rhs }
 }
 
+pub mod timespec_serde {
+  use super::*;
+
+  #[derive(Serialize, Deserialize)]
+  struct Timespec(i64, u32);
+
+  #[throws(S::Error)]
+  pub fn serialize<S:Serializer>(v: &TimeSpec, s: S) -> S::Ok {
+    let v = Timespec(v.tv_sec().into(), v.tv_nsec().try_into().unwrap());
+    Serialize::serialize(&v, s)?
+  }
+  #[throws(D::Error)]
+  pub fn deserialize<'de, D:Deserializer<'de>>(d: D) -> TimeSpec {
+    let Timespec(sec, nsec) = Deserialize::deserialize(d)?;
+    libc::timespec { tv_sec: sec.into(), tv_nsec: nsec.into() }.into()
+  }
+}
+
 pub fn toml_merge<'u,
                   S: 'u + AsRef<str>,
                   KV: IntoIterator<Item=(&'u S, &'u toml::Value)>