CallbackResult

Trait CallbackResult 

Source
pub trait CallbackResult: Sized {
    // Required methods
    fn is_definitive(&self) -> bool;
    fn try_from_wasm_error(wasm_error: WasmError) -> Result<Self, WasmError>;
}

Required Methods§

Source

fn is_definitive(&self) -> bool

if a callback result is definitive we should halt any further iterations over remaining calls e.g. over sparse names or subsequent zomes typically a clear failure is definitive but success and missing dependencies are not in the case of success or missing deps, a subsequent callback could give us a definitive answer like a fail, and we don’t want to over-optimise wasm calls and miss a clear failure

Source

fn try_from_wasm_error(wasm_error: WasmError) -> Result<Self, WasmError>

when a WasmError is returned from a callback (e.g. via ? operator) it might mean either:

  • There was an error that prevented the callback from coming to a CallbackResult (e.g. failing to connect to database)
  • There was an error that should be interpreted as a CallbackResult::Fail (e.g. data failed to deserialize)

Typically this can be split as host/wasm errors are the former, and serialization/guest errors the latter. This function allows each CallbackResult to explicitly map itself.

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§