summaryrefslogtreecommitdiff
path: root/src/boot/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/mod.rs')
-rw-r--r--src/boot/mod.rs15
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)
+}