diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-10-02 01:10:09 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-10-02 01:10:09 -0400 |
| commit | 6f07e6869bbf62903ac83c9bc061e7bde997e6a8 (patch) | |
| tree | 75fa34f83ccf207db83d3d0a34ff9963927fadf8 /src/repo/sequence.rs | |
| parent | 5d3392799f88c5a3d3f9c656c73d6e8ac5c4d793 (diff) | |
Retire top-level `repo`.
This helped me discover an organizational scheme I like more.
Diffstat (limited to 'src/repo/sequence.rs')
| -rw-r--r-- | src/repo/sequence.rs | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/src/repo/sequence.rs b/src/repo/sequence.rs deleted file mode 100644 index c985869..0000000 --- a/src/repo/sequence.rs +++ /dev/null @@ -1,44 +0,0 @@ -use sqlx::{sqlite::Sqlite, SqliteConnection, Transaction}; - -use crate::event::Sequence; - -pub trait Provider { - fn sequence(&mut self) -> Sequences; -} - -impl<'c> Provider for Transaction<'c, Sqlite> { - fn sequence(&mut self) -> Sequences { - Sequences(self) - } -} - -pub struct Sequences<'t>(&'t mut SqliteConnection); - -impl<'c> Sequences<'c> { - pub async fn next(&mut self) -> Result<Sequence, sqlx::Error> { - let next = sqlx::query_scalar!( - r#" - update event_sequence - set last_value = last_value + 1 - returning last_value as "next_value: Sequence" - "#, - ) - .fetch_one(&mut *self.0) - .await?; - - Ok(next) - } - - pub async fn current(&mut self) -> Result<Sequence, sqlx::Error> { - let next = sqlx::query_scalar!( - r#" - select last_value as "last_value: Sequence" - from event_sequence - "#, - ) - .fetch_one(&mut *self.0) - .await?; - - Ok(next) - } -} |
