Trait oasis_contract_sdk::error::Error
source · pub trait Error: Error {
// Required methods
fn module_name(&self) -> &str;
fn code(&self) -> u32;
// Provided method
fn to_execution_result(&self) -> ExecutionResult { ... }
}
Expand description
A contract 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:
#[derive(Clone, Debug, Error, thiserror::Error)]
#[sdk_error(autonumber)]
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 to_execution_result(&self) -> ExecutionResult
fn to_execution_result(&self) -> ExecutionResult
Converts the error into an execution result.