Skip to main content

Step

Trait Step 

Source
pub trait Step: Send + Sync {
    // Required methods
    fn execute_with_context<'life0, 'life1, 'async_trait>(
        &'life0 self,
        input: StepInput,
        ctx: ExecutionContext<'life1>,
    ) -> Pin<Box<dyn Future<Output = StepResult> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn name(&self) -> &str;
    fn step_type(&self) -> StepType;

    // Provided methods
    fn execute<'life0, 'async_trait>(
        &'life0 self,
        input: StepInput,
    ) -> Pin<Box<dyn Future<Output = StepResult> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait { ... }
    fn description(&self) -> Option<&str> { ... }
    fn get_branches(&self) -> Option<(&dyn Step, &dyn Step)> { ... }
    fn get_sub_workflow(&self) -> Option<Workflow> { ... }
}
Expand description

Step trait - all workflow steps must implement this

Required Methods§

Source

fn execute_with_context<'life0, 'life1, 'async_trait>( &'life0 self, input: StepInput, ctx: ExecutionContext<'life1>, ) -> Pin<Box<dyn Future<Output = StepResult> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Execute with execution context (for event streaming, etc.)

Source

fn name(&self) -> &str

Unique name for this step

Source

fn step_type(&self) -> StepType

Type of step

Provided Methods§

Source

fn execute<'life0, 'async_trait>( &'life0 self, input: StepInput, ) -> Pin<Box<dyn Future<Output = StepResult> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Execute the step with the given input

Source

fn description(&self) -> Option<&str>

Optional: Get a description of what this step does

Source

fn get_branches(&self) -> Option<(&dyn Step, &dyn Step)>

For conditional steps: get the branches (then, else)

Source

fn get_sub_workflow(&self) -> Option<Workflow>

For sub-workflow steps: get the workflow

Implementors§