Trait TaskStore
Source pub trait TaskStore:
Send
+ Sync
+ 'static {
// Required methods
fn save<'a>(
&'a self,
task: Task,
) -> Pin<Box<dyn Future<Output = A2aResult<()>> + Send + 'a>>;
fn get<'a>(
&'a self,
id: &'a TaskId,
) -> Pin<Box<dyn Future<Output = A2aResult<Option<Task>>> + Send + 'a>>;
fn list<'a>(
&'a self,
params: &'a ListTasksParams,
) -> Pin<Box<dyn Future<Output = A2aResult<TaskListResponse>> + Send + 'a>>;
fn insert_if_absent<'a>(
&'a self,
task: Task,
) -> Pin<Box<dyn Future<Output = A2aResult<bool>> + Send + 'a>>;
fn delete<'a>(
&'a self,
id: &'a TaskId,
) -> Pin<Box<dyn Future<Output = A2aResult<()>> + Send + 'a>>;
}
Expand description
Trait for persisting and retrieving Task objects.
All methods return Pin<Box<dyn Future>> for object safety — this trait
is used as Box<dyn TaskStore>.
§Object safety
Do not add async fn methods; use the explicit Pin<Box<...>> form.
Saves (creates or updates) a task.
§Errors
Returns an A2aError if the store operation fails.
Retrieves a task by its ID, returning None if not found.
§Errors
Returns an A2aError if the store operation fails.
Lists tasks matching the given filter parameters.
§Errors
Returns an A2aError if the store operation fails.
Atomically inserts a task only if no task with the same ID exists.
Returns Ok(true) if the task was inserted, Ok(false) if a task
with the same ID already exists (no modification made).
§Errors
Returns an A2aError if the store operation fails.
Deletes a task by its ID.
§Errors
Returns an A2aError if the store operation fails.