Skip to main content

NativeModule

Trait NativeModule 

Source
pub trait NativeModule: Send + Sync {
    // Required methods
    fn identity(&self) -> &NativeIdentity;
    fn operations(&self) -> &[&str];
    fn capabilities(&self) -> &[&str];
    fn start(
        &self,
        operation: &str,
        arguments: Vec<Value>,
    ) -> Result<TaskId, Error>;
    fn poll(&self, task: TaskId) -> Result<TaskEvent, Error>;
    fn cancel(&self, task: TaskId) -> Result<(), Error>;
    fn drop_task(&self, task: TaskId);
    fn shutdown(&self);

    // Provided method
    fn wait(
        &self,
        task: TaskId,
        timeout: Option<Duration>,
    ) -> Result<TaskEvent, Error> { ... }
}
Expand description

Dependency-free contract implemented by publication-linked native crates.

Required Methods§

Source

fn identity(&self) -> &NativeIdentity

Source

fn operations(&self) -> &[&str]

Source

fn capabilities(&self) -> &[&str]

Source

fn start(&self, operation: &str, arguments: Vec<Value>) -> Result<TaskId, Error>

Source

fn poll(&self, task: TaskId) -> Result<TaskEvent, Error>

Source

fn cancel(&self, task: TaskId) -> Result<(), Error>

Source

fn drop_task(&self, task: TaskId)

Source

fn shutdown(&self)

Provided Methods§

Source

fn wait( &self, task: TaskId, timeout: Option<Duration>, ) -> Result<TaskEvent, Error>

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§