summaryrefslogtreecommitdiff
path: root/src/channel/snapshot.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/channel/snapshot.rs')
-rw-r--r--src/channel/snapshot.rs43
1 files changed, 0 insertions, 43 deletions
diff --git a/src/channel/snapshot.rs b/src/channel/snapshot.rs
deleted file mode 100644
index 96801b8..0000000
--- a/src/channel/snapshot.rs
+++ /dev/null
@@ -1,43 +0,0 @@
-use super::{
- Id,
- event::{Created, Event},
-};
-use crate::{clock::DateTime, event::Instant, name::Name};
-
-#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)]
-pub struct Channel {
- #[serde(flatten)]
- pub created: Instant,
- pub id: Id,
- pub name: Name,
- #[serde(skip_serializing_if = "Option::is_none")]
- pub deleted_at: Option<DateTime>,
-}
-
-impl Channel {
- fn apply(state: Option<Self>, event: Event) -> Option<Self> {
- match (state, event) {
- (None, Event::Created(event)) => Some(event.into()),
- (Some(channel), Event::Deleted(event)) if channel.id == event.id => None,
- (state, event) => panic!("invalid channel event {event:#?} for state {state:#?}"),
- }
- }
-}
-
-impl FromIterator<Event> for Option<Channel> {
- fn from_iter<I: IntoIterator<Item = Event>>(events: I) -> Self {
- events.into_iter().fold(None, Channel::apply)
- }
-}
-
-impl From<&Created> for Channel {
- fn from(event: &Created) -> Self {
- event.channel.clone()
- }
-}
-
-impl From<Created> for Channel {
- fn from(event: Created) -> Self {
- event.channel
- }
-}