pub trait TriggerStore: Send + Sync {
Show 17 methods
// Required methods
fn register_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
condition: &'life1 TriggerCondition,
) -> Pin<Box<dyn Future<Output = RustvelloResult<ConditionId>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ConditionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerCondition>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_conditions_for_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_cron_conditions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_event_conditions<'life0, 'life1, 'async_trait>(
&'life0 self,
event_code: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn register_trigger<'life0, 'life1, 'async_trait>(
&'life0 self,
trigger: &'life1 TriggerDefinitionDTO,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_trigger<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TriggerDefinitionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerDefinitionDTO>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_triggers_for_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
cond_id: &'life1 ConditionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<TriggerDefinitionDTO>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn remove_triggers_for_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<u32>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn record_valid_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
vc: &'life1 ValidCondition,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_valid_conditions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<ValidCondition>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn clear_valid_conditions<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_last_cron_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
cond_id: &'life1 ConditionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<DateTime<Utc>>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn store_cron_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
cond_id: &'life1 ConditionId,
time: DateTime<Utc>,
expected_last: Option<DateTime<Utc>>,
) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn claim_trigger_run<'life0, 'life1, 'async_trait>(
&'life0 self,
run_id: &'life1 TriggerRunId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn purge<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_all_conditions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Async persistence interface for the trigger subsystem.
Mirrors pynenc’s BaseTrigger storage methods. Implementations must
be thread-safe (Send + Sync).
Required Methods§
Sourcefn register_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
condition: &'life1 TriggerCondition,
) -> Pin<Box<dyn Future<Output = RustvelloResult<ConditionId>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
condition: &'life1 TriggerCondition,
) -> Pin<Box<dyn Future<Output = RustvelloResult<ConditionId>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Register a condition and return its deterministic ID.
Sourcefn get_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ConditionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerCondition>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ConditionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerCondition>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a condition by ID.
Sourcefn get_conditions_for_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_conditions_for_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get all conditions that watch a specific task.
Sourcefn get_cron_conditions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_cron_conditions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all cron conditions.
Sourcefn get_event_conditions<'life0, 'life1, 'async_trait>(
&'life0 self,
event_code: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_event_conditions<'life0, 'life1, 'async_trait>(
&'life0 self,
event_code: &'life1 str,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get all event conditions matching an event code.
Sourcefn register_trigger<'life0, 'life1, 'async_trait>(
&'life0 self,
trigger: &'life1 TriggerDefinitionDTO,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register_trigger<'life0, 'life1, 'async_trait>(
&'life0 self,
trigger: &'life1 TriggerDefinitionDTO,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Register a trigger definition.
Sourcefn get_trigger<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TriggerDefinitionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerDefinitionDTO>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_trigger<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 TriggerDefinitionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<TriggerDefinitionDTO>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get a trigger definition by ID.
Sourcefn get_triggers_for_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
cond_id: &'life1 ConditionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<TriggerDefinitionDTO>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_triggers_for_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
cond_id: &'life1 ConditionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<TriggerDefinitionDTO>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get all trigger definitions that reference a given condition.
Sourcefn remove_triggers_for_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<u32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn remove_triggers_for_task<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 TaskId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<u32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove all trigger definitions for a task.
Sourcefn record_valid_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
vc: &'life1 ValidCondition,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn record_valid_condition<'life0, 'life1, 'async_trait>(
&'life0 self,
vc: &'life1 ValidCondition,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Record a condition that has been evaluated and found satisfied.
Sourcefn get_valid_conditions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<ValidCondition>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_valid_conditions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<ValidCondition>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all pending valid conditions.
Sourcefn clear_valid_conditions<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn clear_valid_conditions<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Clear valid conditions by their IDs (after processing).
Sourcefn get_last_cron_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
cond_id: &'life1 ConditionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<DateTime<Utc>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_last_cron_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
cond_id: &'life1 ConditionId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Option<DateTime<Utc>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get the last cron execution time for a condition.
Sourcefn store_cron_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
cond_id: &'life1 ConditionId,
time: DateTime<Utc>,
expected_last: Option<DateTime<Utc>>,
) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn store_cron_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
cond_id: &'life1 ConditionId,
time: DateTime<Utc>,
expected_last: Option<DateTime<Utc>>,
) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Store a cron execution time with optimistic locking.
Returns true if the store succeeded (expected_last matched).
Sourcefn claim_trigger_run<'life0, 'life1, 'async_trait>(
&'life0 self,
run_id: &'life1 TriggerRunId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn claim_trigger_run<'life0, 'life1, 'async_trait>(
&'life0 self,
run_id: &'life1 TriggerRunId,
) -> Pin<Box<dyn Future<Output = RustvelloResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Attempt to claim a trigger run. Returns true if this is first claim.
Sourcefn purge<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn purge<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Purge all trigger data.
Sourcefn get_all_conditions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all_conditions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = RustvelloResult<Vec<(ConditionId, TriggerCondition)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all registered conditions regardless of type.
Every backend must return the complete set of stored conditions (Cron, Status, Event, Result, Exception, Composite).