use sqlx::{SqliteConnection, Transaction, sqlite::Sqlite}; pub trait Provider { fn setup(&mut self) -> Setup<'_>; } impl Provider for Transaction<'_, Sqlite> { fn setup(&mut self) -> Setup<'_> { Setup(self) } } pub struct Setup<'t>(&'t mut SqliteConnection); impl Setup<'_> { pub async fn completed(&mut self) -> Result { let completed = sqlx::query_scalar!( r#" select count(*) > 0 as "completed: bool" from user "#, ) .fetch_one(&mut *self.0) .await?; Ok(completed) } }