pub trait Scheduler: Send + Sync {
// Required method
fn schedule<'a, 'b, 'life0, 'async_trait>(
&'b self,
runners: &'a Vec<RunnerMetadata>,
ctx: &'life0 Context
) -> Pin<Box<dyn Future<Output = Option<&'a RunnerMetadata>> + Send + 'async_trait>>
where 'a: 'async_trait,
'b: 'async_trait,
'b: 'a,
'life0: 'async_trait,
Self: 'async_trait;
// Provided methods
fn on_run_workflow(&self, _workflow: Workflow) { ... }
fn on_run_job(&self, _job: Job) { ... }
fn on_run_step(&self, _step: Step) { ... }
fn on_step_completed(&self, _result: StepRunResult) { ... }
fn on_job_completed(&self, _result: JobRunResult) { ... }
fn on_workflow_completed(&self, _result: WorkflowRunResult) { ... }
}