blob: 48da4f02626f53e1158666d71dcbb69a113f25ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
use std::time::Duration;
use serde::Serialize;
use crate::{channel::Channel, event::Sequence, message::Message, user::User};
pub mod app;
pub mod handlers;
#[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)
}
|