diff options
Diffstat (limited to 'src/boot/mod.rs')
| -rw-r--r-- | src/boot/mod.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/boot/mod.rs b/src/boot/mod.rs index c52b088..122bd53 100644 --- a/src/boot/mod.rs +++ b/src/boot/mod.rs @@ -1,14 +1,25 @@ +use crate::{channel::Channel, event::Sequence, message::Message, user::User}; +use serde::Serialize; +use std::time::Duration; + pub mod app; mod routes; -use crate::{channel::Channel, event::Sequence, message::Message, user::User}; - pub use self::routes::router; #[derive(serde::Serialize)] pub struct Snapshot { pub resume_point: Sequence, + #[serde(serialize_with = "as_seconds")] + pub heartbeat: Duration, pub users: Vec<User>, pub channels: Vec<Channel>, pub messages: Vec<Message>, } + +fn as_seconds<S>(duration: &Duration, serializer: S) -> Result<S::Ok, S::Error> +where + S: serde::Serializer, +{ + duration.as_secs().serialize(serializer) +} |
