Skip to main content

Tasklet

Trait Tasklet 

Source
pub trait Tasklet: Send + Sync {
    // Required method
    fn execute<'a>(
        &'a self,
        context: TaskletContext<'a>,
    ) -> BoxFuture<'a, Result<TaskletOutcome, TaskletError>>;
}
Expand description

A dynamically dispatched, single-invocation asynchronous step body.

Implementations may borrow both themselves and the call-scoped TaskletContext for the entire returned future. They must observe the supplied StopToken when performing cancellable or repeated work.

use oxide_batch::{
    BoxFuture, Tasklet, TaskletContext, TaskletError, TaskletOutcome,
};

struct ImportTasklet;

impl Tasklet for ImportTasklet {
    fn execute<'a>(
        &'a self,
        context: TaskletContext<'a>,
    ) -> BoxFuture<'a, Result<TaskletOutcome, TaskletError>> {
        Box::pin(async move {
            if context.stop_token().is_stop_requested() {
                return Ok(TaskletOutcome::Stopped);
            }
            let _parameters = context.parameters();
            Ok(TaskletOutcome::Completed)
        })
    }
}

Required Methods§

Source

fn execute<'a>( &'a self, context: TaskletContext<'a>, ) -> BoxFuture<'a, Result<TaskletOutcome, TaskletError>>

Executes the step body once.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§