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§
Sourcefn execute_normal<Rust2DartCodec, TaskFn>(
&self,
task_info: TaskInfo,
task: TaskFn,
)
fn execute_normal<Rust2DartCodec, TaskFn>( &self, task_info: TaskInfo, task: TaskFn, )
Executes a Rust function and transforms its return value into a Dart-compatible
value, i.e. types that implement [IntoDart
].
Sourcefn execute_sync<Rust2DartCodec, SyncTaskFn>(
&self,
task_info: TaskInfo,
sync_task: SyncTaskFn,
) -> Rust2DartCodec::Message
fn execute_sync<Rust2DartCodec, SyncTaskFn>( &self, task_info: TaskInfo, sync_task: SyncTaskFn, ) -> Rust2DartCodec::Message
Executes a synchronous Rust function
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.