summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/boot/mod.rs8
-rw-r--r--src/channel/event.rs3
-rw-r--r--src/channel/history.rs2
-rw-r--r--src/channel/snapshot.rs2
-rw-r--r--src/message/event.rs2
-rw-r--r--src/message/history.rs2
-rw-r--r--src/message/snapshot.rs35
7 files changed, 11 insertions, 43 deletions
diff --git a/src/boot/mod.rs b/src/boot/mod.rs
index bd0da0a..a68acac 100644
--- a/src/boot/mod.rs
+++ b/src/boot/mod.rs
@@ -44,9 +44,8 @@ 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,
+ pub id: message::Id,
+ pub body: String,
}
impl From<message::Message> for Message {
@@ -62,7 +61,8 @@ impl From<message::Message> for Message {
Self {
sent,
sender,
- message: Body { id, body },
+ id,
+ body,
}
}
}
diff --git a/src/channel/event.rs b/src/channel/event.rs
index 9c54174..9f2e263 100644
--- a/src/channel/event.rs
+++ b/src/channel/event.rs
@@ -27,6 +27,7 @@ pub enum Kind {
#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)]
pub struct Created {
+ #[serde(flatten)]
pub channel: Channel,
}
@@ -38,7 +39,7 @@ impl From<Created> for Kind {
#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)]
pub struct Deleted {
- pub channel: channel::Id,
+ pub id: channel::Id,
}
impl From<Deleted> for Kind {
diff --git a/src/channel/history.rs b/src/channel/history.rs
index 383fb7b..0499927 100644
--- a/src/channel/history.rs
+++ b/src/channel/history.rs
@@ -53,7 +53,7 @@ impl History {
self.deleted.map(|instant| Event {
instant,
kind: Deleted {
- channel: self.channel.id.clone(),
+ id: self.channel.id.clone(),
}
.into(),
})
diff --git a/src/channel/snapshot.rs b/src/channel/snapshot.rs
index 6462f25..afef2fb 100644
--- a/src/channel/snapshot.rs
+++ b/src/channel/snapshot.rs
@@ -13,7 +13,7 @@ impl Channel {
fn apply(state: Option<Self>, event: Event) -> Option<Self> {
match (state, event.kind) {
(None, Kind::Created(event)) => Some(event.into()),
- (Some(channel), Kind::Deleted(event)) if channel.id == event.channel => None,
+ (Some(channel), Kind::Deleted(event)) if channel.id == event.id => None,
(state, event) => panic!("invalid channel event {event:#?} for state {state:#?}"),
}
}
diff --git a/src/message/event.rs b/src/message/event.rs
index 66db9b0..712ecc1 100644
--- a/src/message/event.rs
+++ b/src/message/event.rs
@@ -55,7 +55,7 @@ pub struct Deleted {
#[serde(flatten)]
pub instant: Instant,
pub channel: Channel,
- pub message: Id,
+ pub id: Id,
}
impl Sequenced for Deleted {
diff --git a/src/message/history.rs b/src/message/history.rs
index f267f4c..3c3f77a 100644
--- a/src/message/history.rs
+++ b/src/message/history.rs
@@ -48,7 +48,7 @@ impl History {
kind: Deleted {
instant,
channel: self.message.channel.clone(),
- message: self.message.id.clone(),
+ id: self.message.id.clone(),
}
.into(),
})
diff --git a/src/message/snapshot.rs b/src/message/snapshot.rs
index 522c1aa..a06fbc4 100644
--- a/src/message/snapshot.rs
+++ b/src/message/snapshot.rs
@@ -5,7 +5,6 @@ use super::{
use crate::{channel::Channel, event::Instant, login::Login};
#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)]
-#[serde(into = "self::serialize::Message")]
pub struct Message {
#[serde(skip)]
pub sent: Instant,
@@ -15,43 +14,11 @@ pub struct Message {
pub body: String,
}
-mod serialize {
- use crate::{channel::Channel, login::Login, message::Id};
-
- #[derive(serde::Serialize)]
- pub struct Message {
- channel: Channel,
- sender: Login,
- #[allow(clippy::struct_field_names)]
- // Deliberately redundant with the module path; this produces a specific serialization.
- message: MessageData,
- }
-
- #[derive(serde::Serialize)]
- pub struct MessageData {
- id: Id,
- body: String,
- }
-
- impl From<super::Message> for Message {
- fn from(message: super::Message) -> Self {
- Self {
- channel: message.channel,
- sender: message.sender,
- message: MessageData {
- id: message.id,
- body: message.body,
- },
- }
- }
- }
-}
-
impl Message {
fn apply(state: Option<Self>, event: Event) -> Option<Self> {
match (state, event.kind) {
(None, Kind::Sent(event)) => Some(event.into()),
- (Some(message), Kind::Deleted(event)) if message.id == event.message => None,
+ (Some(message), Kind::Deleted(event)) if message.id == event.id => None,
(state, event) => panic!("invalid message event {event:#?} for state {state:#?}"),
}
}