a2a_server/task_store/
store.rs1use a2a::*;
4use async_trait::async_trait;
5
6pub type TaskVersion = u64;
8
9#[derive(Debug, Clone)]
11pub struct StoredTask {
12 pub task: Task,
13 pub version: TaskVersion,
14}
15
16#[async_trait]
18pub trait TaskStore: Send + Sync + 'static {
19 async fn create(&self, task: Task) -> Result<TaskVersion, A2AError>;
21
22 async fn update(&self, task: Task) -> Result<TaskVersion, A2AError>;
24
25 async fn get(&self, task_id: &str) -> Result<Option<Task>, A2AError>;
27
28 async fn list(&self, req: &ListTasksRequest) -> Result<ListTasksResponse, A2AError>;
30}