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.rs64
1 files changed, 2 insertions, 62 deletions
diff --git a/src/boot/mod.rs b/src/boot/mod.rs
index bd0da0a..ed4764a 100644
--- a/src/boot/mod.rs
+++ b/src/boot/mod.rs
@@ -1,74 +1,14 @@
pub mod app;
mod routes;
-use crate::{
- channel,
- event::{Instant, Sequence},
- login::Login,
- message,
-};
+use crate::{channel::Channel, event::Sequence, login::Login, message::Message};
pub use self::routes::router;
#[derive(serde::Serialize)]
pub struct Snapshot {
pub resume_point: Sequence,
+ pub logins: Vec<Login>,
pub channels: Vec<Channel>,
-}
-
-#[derive(serde::Serialize)]
-pub struct Channel {
- pub id: channel::Id,
- pub name: String,
pub messages: Vec<Message>,
}
-
-impl Channel {
- fn new(
- channel: channel::Channel,
- messages: impl IntoIterator<Item = message::Message>,
- ) -> Self {
- // The declarations are like this to guarantee that we aren't omitting any important fields from the corresponding types.
- let channel::Channel { id, name } = channel;
-
- Self {
- id,
- name,
- messages: messages.into_iter().map(Message::from).collect(),
- }
- }
-}
-
-#[derive(serde::Serialize)]
-pub struct Message {
- #[serde(flatten)]
- pub sent: Instant,
- pub sender: Login,
- // Named this way for serialization reasons
- #[allow(clippy::struct_field_names)]
- pub message: Body,
-}
-
-impl From<message::Message> for Message {
- fn from(message: message::Message) -> Self {
- let message::Message {
- sent,
- channel: _,
- sender,
- id,
- body,
- } = message;
-
- Self {
- sent,
- sender,
- message: Body { id, body },
- }
- }
-}
-
-#[derive(serde::Serialize)]
-pub struct Body {
- id: message::Id,
- body: String,
-}