Trait Executor

Source
pub trait Executor {
    // Required methods
    fn execute_normal<Rust2DartCodec, TaskFn>(
        &self,
        task_info: TaskInfo,
        task: TaskFn,
    )
       where TaskFn: FnOnce(TaskContext) -> Result<Rust2DartCodec::Message, Rust2DartCodec::Message> + Send + 'static,
             Rust2DartCodec: BaseCodec;
    fn execute_sync<Rust2DartCodec, SyncTaskFn>(
        &self,
        task_info: TaskInfo,
        sync_task: SyncTaskFn,
    ) -> Rust2DartCodec::Message
       where SyncTaskFn: FnOnce() -> Result<Rust2DartCodec::Message, Rust2DartCodec::Message>,
             Rust2DartCodec: BaseCodec;
    fn execute_async<Rust2DartCodec, TaskFn, TaskRetFut>(
        &self,
        task_info: TaskInfo,
        task: TaskFn,
    )
       where TaskFn: FnOnce(TaskContext) -> TaskRetFut + Send + 'static,
             TaskRetFut: Future<Output = Result<Rust2DartCodec::Message, Rust2DartCodec::Message>> + TaskRetFutTrait,
             Rust2DartCodec: BaseCodec;
}
Expand description

An executor model for Rust functions.

For example, the default model is [SimpleExecutor] which runs each function in a separate thread.

Required Methods§

Source

fn execute_normal<Rust2DartCodec, TaskFn>( &self, task_info: TaskInfo, task: TaskFn, )
where TaskFn: FnOnce(TaskContext) -> Result<Rust2DartCodec::Message, Rust2DartCodec::Message> + Send + 'static, Rust2DartCodec: BaseCodec,

Executes a Rust function and transforms its return value into a Dart-compatible value, i.e. types that implement [IntoDart].

Source

fn execute_sync<Rust2DartCodec, SyncTaskFn>( &self, task_info: TaskInfo, sync_task: SyncTaskFn, ) -> Rust2DartCodec::Message
where SyncTaskFn: FnOnce() -> Result<Rust2DartCodec::Message, Rust2DartCodec::Message>, Rust2DartCodec: BaseCodec,

Executes a synchronous Rust function

Source

fn execute_async<Rust2DartCodec, TaskFn, TaskRetFut>( &self, task_info: TaskInfo, task: TaskFn, )
where TaskFn: FnOnce(TaskContext) -> TaskRetFut + Send + 'static, TaskRetFut: Future<Output = Result<Rust2DartCodec::Message, Rust2DartCodec::Message>> + TaskRetFutTrait, Rust2DartCodec: BaseCodec,

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§