pub struct PostgresTriggerStore { /* private fields */ }Expand description
PostgreSQL-backed trigger store implementation.
Implementations§
Trait Implementations§
Source§impl TriggerStore for PostgresTriggerStore
impl TriggerStore for PostgresTriggerStore
Source§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 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.
Source§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_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.
Source§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_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.
Source§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_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.
Source§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 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.
Source§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 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.
Source§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_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.
Source§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 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.
Source§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 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.
Source§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 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.
Source§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 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.
Source§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 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).
Source§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 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.
Source§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 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).Source§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 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.Source§fn 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.
Source§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,
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. Read more
Auto Trait Implementations§
impl Freeze for PostgresTriggerStore
impl !RefUnwindSafe for PostgresTriggerStore
impl Send for PostgresTriggerStore
impl Sync for PostgresTriggerStore
impl Unpin for PostgresTriggerStore
impl UnsafeUnpin for PostgresTriggerStore
impl !UnwindSafe for PostgresTriggerStore
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