diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-10-05 22:42:43 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-10-05 22:47:12 -0400 |
| commit | 6a10fcaf64938da52b326ea80013d9f30ed62a6c (patch) | |
| tree | 08a3860b68391514390f42872ccc1cb4c6e6afd2 /src/event/app.rs | |
| parent | 1fb26ad31d385ddc628e1b73d6a8764981ca6885 (diff) | |
Separate `/api/boot` into its own module.
Diffstat (limited to 'src/event/app.rs')
| -rw-r--r-- | src/event/app.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/event/app.rs b/src/event/app.rs index d664ec7..141037d 100644 --- a/src/event/app.rs +++ b/src/event/app.rs @@ -6,7 +6,7 @@ use futures::{ use itertools::Itertools as _; use sqlx::sqlite::SqlitePool; -use super::{broadcaster::Broadcaster, Event, Sequence, Sequenced}; +use super::{broadcaster::Broadcaster, Event, ResumePoint, Sequence, Sequenced}; use crate::{ channel::{self, repo::Provider as _}, message::{self, repo::Provider as _}, @@ -24,8 +24,9 @@ impl<'a> Events<'a> { pub async fn subscribe( &self, - resume_at: Option<Sequence>, + resume_at: impl Into<ResumePoint>, ) -> Result<impl Stream<Item = Event> + std::fmt::Debug, sqlx::Error> { + let resume_at = resume_at.into(); // Subscribe before retrieving, to catch messages broadcast while we're // querying the DB. We'll prune out duplicates later. let live_messages = self.events.subscribe(); @@ -65,7 +66,7 @@ impl<'a> Events<'a> { Ok(replay.chain(live_messages)) } - fn resume(resume_at: Option<Sequence>) -> impl for<'m> FnMut(&'m Event) -> future::Ready<bool> { + fn resume(resume_at: ResumePoint) -> impl for<'m> FnMut(&'m Event) -> future::Ready<bool> { let filter = Sequence::after(resume_at); move |event| future::ready(filter(event)) } |
