pub trait TriggerEngine: Send + Sync {
// Required methods
fn kind(&self) -> TriggerEngineKind;
fn next_after(
&self,
trigger: &ScheduleTrigger,
timezone: Option<&str>,
after: DateTime<Utc>,
window: &ScheduleWindow,
) -> Result<Option<DateTime<Utc>>, TriggerComputationError>;
// Provided method
fn due_between(
&self,
trigger: &ScheduleTrigger,
timezone: Option<&str>,
from: DateTime<Utc>,
to: DateTime<Utc>,
window: &ScheduleWindow,
limit: usize,
) -> Result<Vec<DateTime<Utc>>, TriggerComputationError> { ... }
}Expand description
Interface for computing schedule occurrences.
Bamboo owns schedule state, policies, and execution. Concrete trigger engines only answer recurrence questions and can be swapped independently.
Required Methods§
fn kind(&self) -> TriggerEngineKind
fn next_after( &self, trigger: &ScheduleTrigger, timezone: Option<&str>, after: DateTime<Utc>, window: &ScheduleWindow, ) -> Result<Option<DateTime<Utc>>, TriggerComputationError>
Provided Methods§
fn due_between( &self, trigger: &ScheduleTrigger, timezone: Option<&str>, from: DateTime<Utc>, to: DateTime<Utc>, window: &ScheduleWindow, limit: usize, ) -> Result<Vec<DateTime<Utc>>, TriggerComputationError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".