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§
Sourcefn execute<'a>(
&'a self,
context: TaskletContext<'a>,
) -> BoxFuture<'a, Result<TaskletOutcome, TaskletError>>
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".