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) { ... }
fn on_resolve_dynamic_action(
&self,
_step: UserActionStep
) -> Option<Box<dyn Action>> { ... }
}