summaryrefslogtreecommitdiff
path: root/src/message/snapshot.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-08 22:10:04 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-09 11:45:31 -0400
commit653e2de752a97e377fc9963ba60d9408e7089528 (patch)
treea707919c0c0cb3c84ec3ea624ae8cd87059f28ac /src/message/snapshot.rs
parentdd62b823e01934a0f841256fdb17b551091896bf (diff)
Flatten nested `channel` and `message` structs in events and API responses.
This structure didn't accomplish anything and made certain refactorings harder.
Diffstat (limited to 'src/message/snapshot.rs')
-rw-r--r--src/message/snapshot.rs35
1 files changed, 1 insertions, 34 deletions
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:#?}"),
}
}