summaryrefslogtreecommitdiff
path: root/src/event/repo/sequence.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-02 01:31:43 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-02 01:31:43 -0400
commit469613872f6fb19f4579b387e19b2bc38fa52f51 (patch)
tree16edc3e8fac1a418c4b9ed5450167a793a7d6c8b /src/event/repo/sequence.rs
parent6f07e6869bbf62903ac83c9bc061e7bde997e6a8 (diff)
Package up common event fields as Instant
Diffstat (limited to 'src/event/repo/sequence.rs')
-rw-r--r--src/event/repo/sequence.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/event/repo/sequence.rs b/src/event/repo/sequence.rs
index c985869..40d6a53 100644
--- a/src/event/repo/sequence.rs
+++ b/src/event/repo/sequence.rs
@@ -1,6 +1,9 @@
use sqlx::{sqlite::Sqlite, SqliteConnection, Transaction};
-use crate::event::Sequence;
+use crate::{
+ clock::DateTime,
+ event::{Instant, Sequence},
+};
pub trait Provider {
fn sequence(&mut self) -> Sequences;
@@ -15,7 +18,7 @@ impl<'c> Provider for Transaction<'c, Sqlite> {
pub struct Sequences<'t>(&'t mut SqliteConnection);
impl<'c> Sequences<'c> {
- pub async fn next(&mut self) -> Result<Sequence, sqlx::Error> {
+ pub async fn next(&mut self, at: &DateTime) -> Result<Instant, sqlx::Error> {
let next = sqlx::query_scalar!(
r#"
update event_sequence
@@ -26,7 +29,10 @@ impl<'c> Sequences<'c> {
.fetch_one(&mut *self.0)
.await?;
- Ok(next)
+ Ok(Instant {
+ at: *at,
+ sequence: next,
+ })
}
pub async fn current(&mut self) -> Result<Sequence, sqlx::Error> {