Trait Task

Source
pub trait Task: Send + Sized {
    type Output: Send + Sized + 'static;
    type JsValue: ToNapiValue + TypeName;

    // Required methods
    fn compute(&mut self) -> Result<Self::Output>;
    fn resolve(
        &mut self,
        env: Env,
        output: Self::Output,
    ) -> Result<Self::JsValue>;

    // Provided methods
    fn reject(&mut self, _env: Env, err: Error) -> Result<Self::JsValue> { ... }
    fn finally(&mut self, _env: Env) -> Result<()> { ... }
}

Required Associated Types§

Required Methods§

Source

fn compute(&mut self) -> Result<Self::Output>

Compute logic in libuv thread

Source

fn resolve(&mut self, env: Env, output: Self::Output) -> Result<Self::JsValue>

Into this method if compute return Ok

Provided Methods§

Source

fn reject(&mut self, _env: Env, err: Error) -> Result<Self::JsValue>

Into this method if compute return Err

Source

fn finally(&mut self, _env: Env) -> Result<()>

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§