Trait oasis_runtime_sdk::error::Error
source · pub trait Error: Error {
// Required methods
fn module_name(&self) -> &str;
fn code(&self) -> u32;
// Provided methods
fn into_call_result(self) -> CallResult
where Self: Sized { ... }
fn into_abort(self) -> Result<Error, Self>
where Self: Sized { ... }
}
Expand description
A runtime error that gets propagated to the caller.
It extends std::error::Error
with module name and error code so that errors can be easily
serialized and transferred between different processes.
This trait can be derived:
const MODULE_NAME: &str = "my-module";
#[derive(Clone, Debug, Error, thiserror::Error)]
#[sdk_error(autonumber)] // `module_name` meta is required if `MODULE_NAME` isn't in scope
enum Error {
#[error("invalid argument")]
InvalidArgument, // autonumbered to 0
#[error("forbidden")]
#[sdk_error(code = 401)] // manually numbered to 403 (`code` or autonumbering is required)
Forbidden,
}
Required Methods§
sourcefn module_name(&self) -> &str
fn module_name(&self) -> &str
Name of the module that emitted the error.
Provided Methods§
sourcefn into_call_result(self) -> CallResultwhere
Self: Sized,
fn into_call_result(self) -> CallResultwhere
Self: Sized,
Converts the error into a call result.
sourcefn into_abort(self) -> Result<Error, Self>where
Self: Sized,
fn into_abort(self) -> Result<Error, Self>where
Self: Sized,
Consumes self and returns either Ok(err)
(where err
is a dispatcher error) when batch
should abort or Err(self)
when this is just a regular error.