summaryrefslogtreecommitdiff
path: root/src/serde.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/serde.rs')
-rw-r--r--src/serde.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/serde.rs b/src/serde.rs
new file mode 100644
index 0000000..9049d64
--- /dev/null
+++ b/src/serde.rs
@@ -0,0 +1,22 @@
+use chrono::NaiveDateTime;
+use serde::{Deserialize, Deserializer};
+
+
+pub fn naive_read_unixtime<'de, D>(d: D) -> Result<NaiveDateTime, D::Error>
+where
+ D: Deserializer<'de>,
+{
+ let ts = <i64>::deserialize(d)?;
+ Ok(NaiveDateTime::from_timestamp(ts, 0))
+}
+
+pub fn option_naive_read_unixtime<'de, D>(d: D) -> Result<Option<NaiveDateTime>, D::Error>
+where
+ D: Deserializer<'de>,
+{
+ match <i64>::deserialize(d) {
+ Ok(ts) =>
+ Ok(Some(NaiveDateTime::from_timestamp(ts, 0))),
+ Err(_) => Ok(None)
+ }
+}