diff options
Diffstat (limited to 'src/event/types.rs')
| -rw-r--r-- | src/event/types.rs | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/src/event/types.rs b/src/event/types.rs index cd7dea6..2324dc1 100644 --- a/src/event/types.rs +++ b/src/event/types.rs @@ -1,16 +1,14 @@ use crate::{ channel::{self, Channel}, - clock::DateTime, - event::Sequence, + event::{Instant, Sequence}, login::Login, message::{self, Message}, }; #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)] pub struct ChannelEvent { - #[serde(skip)] - pub sequence: Sequence, - pub at: DateTime, + #[serde(flatten)] + pub instant: Instant, #[serde(flatten)] pub data: ChannelEventData, } @@ -18,25 +16,15 @@ pub struct ChannelEvent { impl ChannelEvent { pub fn created(channel: Channel) -> Self { Self { - at: channel.created_at, - sequence: channel.created_sequence, + instant: channel.created, data: CreatedEvent { channel }.into(), } } - - pub fn channel_id(&self) -> &channel::Id { - match &self.data { - ChannelEventData::Created(event) => &event.channel.id, - ChannelEventData::Message(event) => &event.channel.id, - ChannelEventData::MessageDeleted(event) => &event.channel.id, - ChannelEventData::Deleted(event) => &event.channel, - } - } } impl<'c> From<&'c ChannelEvent> for Sequence { fn from(event: &'c ChannelEvent) -> Self { - event.sequence + event.instant.sequence } } |
