summaryrefslogtreecommitdiff
path: root/src/event/repo/sequence.rs
diff options
context:
space:
mode:
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> {