blob: 2b74de19ccf4e2f0e5ddc0bf93450a3e564062fc (
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 routes;
#[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)
}
|