pub struct SqliteTaskStore { /* private fields */ }Expand description
SQLite-backed persistent TaskStore.
Open with SqliteTaskStore::open (file path) or
SqliteTaskStore::open_in_memory (tests). Both return the store plus
an AsyncIsleDriver the caller must shutdown().await when done —
dropping the driver without a shutdown call leaves the SQLite thread
as-is until the process exits.
Implementations§
Source§impl SqliteTaskStore
impl SqliteTaskStore
Sourcepub async fn open(
path: impl AsRef<Path>,
) -> Result<(Self, AsyncIsleDriver), TaskStoreError>
pub async fn open( path: impl AsRef<Path>, ) -> Result<(Self, AsyncIsleDriver), TaskStoreError>
Open (or create) a SQLite database file and run the schema migrations.
Sourcepub async fn open_in_memory() -> Result<(Self, AsyncIsleDriver), TaskStoreError>
pub async fn open_in_memory() -> Result<(Self, AsyncIsleDriver), TaskStoreError>
Open an ephemeral in-memory database (tests, doctests).
Trait Implementations§
Source§impl TaskStore for SqliteTaskStore
impl TaskStore for SqliteTaskStore
Source§fn create<'life0, 'async_trait>(
&'life0 self,
record: TaskRecord,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create<'life0, 'async_trait>(
&'life0 self,
record: TaskRecord,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create a new Task row. Returns
Duplicate if record.id is
already stored.Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = Result<TaskRecord, TaskStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = Result<TaskRecord, TaskStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch a Task by id.
Source§fn list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<TaskRecord>, TaskStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<TaskRecord>, TaskStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List every Task, newest first (descending
created_at).Source§fn update_status<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
status: TaskRecordStatus,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_status<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TaskId,
status: TaskRecordStatus,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStoreError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update a Task’s status, bumping
updated_at to now.Auto Trait Implementations§
impl Freeze for SqliteTaskStore
impl RefUnwindSafe for SqliteTaskStore
impl Send for SqliteTaskStore
impl Sync for SqliteTaskStore
impl Unpin for SqliteTaskStore
impl UnsafeUnpin for SqliteTaskStore
impl UnwindSafe for SqliteTaskStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more