pub struct InMemoryTaskStorage { /* private fields */ }Expand description
In-memory task storage backend.
Uses Arc<RwLock<HashMap>> for concurrent access.
Task IDs are UUID v7 for temporal ordering.
Implementations§
Source§impl InMemoryTaskStorage
impl InMemoryTaskStorage
Sourcepub fn with_config(config: InMemoryTaskConfig) -> Self
pub fn with_config(config: InMemoryTaskConfig) -> Self
Create a new in-memory task storage with custom configuration.
Sourcepub fn generate_task_id() -> String
pub fn generate_task_id() -> String
Generate a new task ID using UUID v7 (temporal ordering).
Trait Implementations§
Source§impl Clone for InMemoryTaskStorage
impl Clone for InMemoryTaskStorage
Source§fn clone(&self) -> InMemoryTaskStorage
fn clone(&self) -> InMemoryTaskStorage
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 Default for InMemoryTaskStorage
impl Default for InMemoryTaskStorage
Source§impl TaskStorage for InMemoryTaskStorage
impl TaskStorage for InMemoryTaskStorage
Source§fn backend_name(&self) -> &'static str
fn backend_name(&self) -> &'static str
Human-readable name of the storage backend (e.g., “in-memory”, “sqlite”)
Source§fn create_task<'life0, 'async_trait>(
&'life0 self,
task: TaskRecord,
) -> Pin<Box<dyn Future<Output = Result<TaskRecord, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_task<'life0, 'async_trait>(
&'life0 self,
task: TaskRecord,
) -> Pin<Box<dyn Future<Output = Result<TaskRecord, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create a new task record. Returns the created record.
Source§fn get_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<TaskRecord>, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<TaskRecord>, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a task by ID. Returns
None if not found.Source§fn update_task<'life0, 'async_trait>(
&'life0 self,
task: TaskRecord,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_task<'life0, 'async_trait>(
&'life0 self,
task: TaskRecord,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Update an existing task record (full replacement).
Source§fn delete_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete a task by ID. Returns
true if deleted, false if not found.Source§fn list_tasks<'life0, 'life1, 'async_trait>(
&'life0 self,
cursor: Option<&'life1 str>,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<TaskListPage, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_tasks<'life0, 'life1, 'async_trait>(
&'life0 self,
cursor: Option<&'life1 str>,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<TaskListPage, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List tasks with cursor-based pagination.
Source§fn update_task_status<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
new_status: TaskStatus,
status_message: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<TaskRecord, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_task_status<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
new_status: TaskStatus,
status_message: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<TaskRecord, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Update a task’s status with state machine validation. Read more
Source§fn store_task_result<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
result: TaskOutcome,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn store_task_result<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
result: TaskOutcome,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Store the outcome of the underlying request for a task.
Source§fn get_task_result<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<TaskOutcome>, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_task_result<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<TaskOutcome>, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get the stored outcome for a task.
Source§fn expire_tasks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn expire_tasks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Expire tasks that have exceeded their TTL. Returns IDs of expired tasks.
Source§fn task_count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<usize, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn task_count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<usize, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get the total number of tasks in storage.
Source§fn maintenance<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn maintenance<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Perform periodic maintenance (cleanup, compaction, etc.)
Source§fn list_tasks_for_session<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
cursor: Option<&'life2 str>,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<TaskListPage, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn list_tasks_for_session<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
cursor: Option<&'life2 str>,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<TaskListPage, TaskStorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
List tasks bound to a specific session, with cursor-based pagination.
Auto Trait Implementations§
impl Freeze for InMemoryTaskStorage
impl !RefUnwindSafe for InMemoryTaskStorage
impl Send for InMemoryTaskStorage
impl Sync for InMemoryTaskStorage
impl Unpin for InMemoryTaskStorage
impl UnsafeUnpin for InMemoryTaskStorage
impl !UnwindSafe for InMemoryTaskStorage
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