pub trait Plugin: Send {
// Required method
fn name(&self) -> &'static str;
// Provided methods
fn on_state_change(&self, _event: WorkflowStateEvent) { ... }
fn on_log(&self, _log: WorkflowLog) { ... }
fn on_run_workflow(&self, _event: RunWorkflowEvent) { ... }
fn on_run_job(&self, _event: RunJobEvent) { ... }
fn on_run_step(&self, _event: RunStepEvent) { ... }
fn on_workflow_completed(&self, _result: WorkflowRunResult) { ... }
fn on_job_completed(&self, _result: JobRunResult) { ... }
fn on_step_completed(&self, _result: StepRunResult) { ... }
}