pub struct InMemoryResultBackend { /* private fields */ }Expand description
A fully in-memory implementation of the ResultStore
trait.
All results are stored in process behind a tokio::sync::Mutex. The
backend implements the complete ResultStore contract — store_result,
get_result, get_state, forget, and has_result — and additionally
provides native support for the optional tombstone hooks so that a forgotten
result can be distinguished from one that never existed.
The backend is cheap to Clone; clones share the same underlying storage.
Implementations§
Trait Implementations§
Source§impl Debug for InMemoryResultBackend
impl Debug for InMemoryResultBackend
Source§impl Default for InMemoryResultBackend
impl Default for InMemoryResultBackend
Source§impl ResultStore for InMemoryResultBackend
impl ResultStore for InMemoryResultBackend
Source§fn store_result<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
result: TaskResultValue,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn store_result<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
result: TaskResultValue,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Store a task result
Source§fn get_result<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<Option<TaskResultValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_result<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<Option<TaskResultValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Retrieve a task result
Source§fn get_state<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<TaskState>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_state<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<TaskState>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get task state
Source§fn forget<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn forget<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Delete a task result
Source§fn has_result<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn has_result<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Check if a result exists
Source§fn store_tombstone<'life0, 'async_trait>(
&'life0 self,
tombstone: ResultTombstone,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn store_tombstone<'life0, 'async_trait>(
&'life0 self,
tombstone: ResultTombstone,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Record a tombstone marking a result as explicitly deleted/forgotten. Read more
Source§fn get_tombstone<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<Option<ResultTombstone>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_tombstone<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<Option<ResultTombstone>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Fetch the tombstone marker for a task, if one was recorded. Read more
Source§fn has_tombstone<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn has_tombstone<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns
true if a tombstone marker is recorded for the task. Read moreSource§fn result_existence<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<ResultExistence>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn result_existence<'life0, 'async_trait>(
&'life0 self,
task_id: TaskId,
) -> Pin<Box<dyn Future<Output = Result<ResultExistence>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Resolve the tri-state existence of a result: present, tombstoned
(explicitly deleted), or absent (never existed). Read more
Source§fn forget_with_tombstone<'life0, 'async_trait>(
&'life0 self,
tombstone: ResultTombstone,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn forget_with_tombstone<'life0, 'async_trait>(
&'life0 self,
tombstone: ResultTombstone,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Forget a result and simultaneously record a tombstone for it. Read more
Source§fn result_ttl_for<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
config: &'life1 ResultTtlConfig,
task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Duration>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn result_ttl_for<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
config: &'life1 ResultTtlConfig,
task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Duration>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Query the effective result TTL for a task type, given a per-task-type
TTL configuration. Read more
Source§fn apply_result_ttl<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_task_id: TaskId,
_config: &'life1 ResultTtlConfig,
_task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn apply_result_ttl<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_task_id: TaskId,
_config: &'life1 ResultTtlConfig,
_task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Apply a per-task-type TTL to an already-stored result. Read more
Auto Trait Implementations§
impl !Freeze for InMemoryResultBackend
impl !RefUnwindSafe for InMemoryResultBackend
impl !UnwindSafe for InMemoryResultBackend
impl Send for InMemoryResultBackend
impl Sync for InMemoryResultBackend
impl Unpin for InMemoryResultBackend
impl UnsafeUnpin for InMemoryResultBackend
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