From ffba911ba5240f67cc616b2cc2eaf7c730ebbde8 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Wed, 30 Oct 2024 01:14:02 -0400 Subject: Avoid hard-coding the assumption that delete comes-after create. I mean, it always does, but I'd rather get a panic during message/channel reconstruction than wrong results if that assumption is ever violated inadvertently. --- src/channel/history.rs | 6 +++++- src/message/history.rs | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/channel/history.rs b/src/channel/history.rs index 4b9fcc7..dda7bb9 100644 --- a/src/channel/history.rs +++ b/src/channel/history.rs @@ -1,3 +1,5 @@ +use itertools::Itertools as _; + use super::{ event::{Created, Deleted, Event}, Channel, Id, @@ -41,7 +43,9 @@ impl History { // Event factories impl History { pub fn events(&self) -> impl Iterator { - [self.created()].into_iter().chain(self.deleted()) + [self.created()] + .into_iter() + .merge_by(self.deleted(), Sequence::merge) } fn created(&self) -> Event { diff --git a/src/message/history.rs b/src/message/history.rs index 0424d0d..67e437a 100644 --- a/src/message/history.rs +++ b/src/message/history.rs @@ -1,3 +1,5 @@ +use itertools::Itertools as _; + use super::{ event::{Deleted, Event, Sent}, Id, Message, @@ -57,6 +59,8 @@ impl History { } pub fn events(&self) -> impl Iterator { - [self.sent()].into_iter().chain(self.deleted()) + [self.sent()] + .into_iter() + .merge_by(self.deleted(), Sequence::merge) } } -- cgit v1.2.3