pub trait Runner: Send + Sync {
// Required method
fn run(&self, config: Context) -> RunResponse;
// Provided methods
fn on_run_workflow(&self, _workflow: Workflow) { ... }
fn on_run_job(&self, _job: Job) { ... }
fn on_job_completed(&self, _result: JobRunResult) { ... }
fn on_workflow_completed(&self, _result: WorkflowRunResult) { ... }
fn on_state_change(&self, _event: WorkflowStateEvent) { ... }
fn on_log(&self, _log: WorkflowLog) { ... }
}