summaryrefslogtreecommitdiff
path: root/src/serde.rs
diff options
context:
space:
mode:
authorstuebinm2022-02-01 17:41:56 +0100
committerstuebinm2022-02-01 17:42:59 +0100
commit80a4af9f0a6f7e3bd2d8254f8bc8475ca73b8980 (patch)
treea2077ce6d328f2b94d0394fa1590c0cc5feac6fe /src/serde.rs
parentaacb2d78a4a97e3e8d7fdff4c06cba8be5f3139f (diff)
display iceportal itinery & stops
I'm pretty sure something in parsing the times is broken, since this train is currently /also/ broken I have absolutely no idea what the correct ones would be and don't have the energy to dig further into this.
Diffstat (limited to '')
-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)
+ }
+}