Trait LaunchExEx

Source
pub trait LaunchExEx<Node: FullNodeComponents>: Send {
    // Required method
    fn launch(
        self,
        ctx: ExExContext<Node>,
    ) -> impl Future<Output = Result<impl Future<Output = Result<()>> + Send>> + Send;
}
Expand description

A trait for launching an ExEx.

Required Methods§

Source

fn launch( self, ctx: ExExContext<Node>, ) -> impl Future<Output = Result<impl Future<Output = Result<()>> + Send>> + Send

Launches the ExEx.

The ExEx should be able to run independently and emit events on the channels provided in the ExExContext.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<Node, F, Fut, E> LaunchExEx<Node> for F
where Node: FullNodeComponents, F: FnOnce(ExExContext<Node>) -> Fut + Send, Fut: Future<Output = Result<E>> + Send, E: Future<Output = Result<()>> + Send,

Implements LaunchExEx for any closure that takes an ExExContext and returns a future resolving to an ExEx.