pub struct SqliteTaskStore { /* private fields */ }Expand description
SQLite-backed TaskStore.
Stores tasks as JSON blobs in a tasks table. Suitable for single-node
production deployments that need persistence across restarts.
§Schema
The store auto-creates the following table on first use:
CREATE TABLE IF NOT EXISTS tasks (
id TEXT PRIMARY KEY,
context_id TEXT NOT NULL,
state TEXT NOT NULL,
data TEXT NOT NULL,
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
);Implementations§
Source§impl SqliteTaskStore
impl SqliteTaskStore
Sourcepub async fn new(url: &str) -> Result<Self, Error>
pub async fn new(url: &str) -> Result<Self, Error>
Opens (or creates) a SQLite database and initializes the schema.
§Errors
Returns an error if the database cannot be opened or the schema migration fails.
Sourcepub async fn with_migrations(url: &str) -> Result<Self, Error>
pub async fn with_migrations(url: &str) -> Result<Self, Error>
Opens a SQLite database with automatic schema migration.
Runs all pending migrations before returning the store. This is the recommended constructor for production deployments because it ensures the schema is always up to date without duplicating DDL statements.
§Errors
Returns an error if the database cannot be opened or any migration fails.
Trait Implementations§
Source§impl Clone for SqliteTaskStore
impl Clone for SqliteTaskStore
Source§fn clone(&self) -> SqliteTaskStore
fn clone(&self) -> SqliteTaskStore
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SqliteTaskStore
impl Debug for SqliteTaskStore
Source§impl TaskStore for SqliteTaskStore
impl TaskStore for SqliteTaskStore
Source§fn save<'a>(
&'a self,
task: Task,
) -> Pin<Box<dyn Future<Output = A2aResult<()>> + Send + 'a>>
fn save<'a>( &'a self, task: Task, ) -> Pin<Box<dyn Future<Output = A2aResult<()>> + Send + 'a>>
Saves (creates or updates) a task. Read more
Source§fn get<'a>(
&'a self,
id: &'a TaskId,
) -> Pin<Box<dyn Future<Output = A2aResult<Option<Task>>> + Send + 'a>>
fn get<'a>( &'a self, id: &'a TaskId, ) -> Pin<Box<dyn Future<Output = A2aResult<Option<Task>>> + Send + 'a>>
Retrieves a task by its ID, returning
None if not found. Read moreSource§fn list<'a>(
&'a self,
params: &'a ListTasksParams,
) -> Pin<Box<dyn Future<Output = A2aResult<TaskListResponse>> + Send + 'a>>
fn list<'a>( &'a self, params: &'a ListTasksParams, ) -> Pin<Box<dyn Future<Output = A2aResult<TaskListResponse>> + Send + 'a>>
Lists tasks matching the given filter parameters. Read more
Source§fn insert_if_absent<'a>(
&'a self,
task: Task,
) -> Pin<Box<dyn Future<Output = A2aResult<bool>> + Send + 'a>>
fn insert_if_absent<'a>( &'a self, task: Task, ) -> Pin<Box<dyn Future<Output = A2aResult<bool>> + Send + 'a>>
Atomically inserts a task only if no task with the same ID exists. Read more
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request