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.