pub enum Trap {
User(Box<dyn Error + Send + Sync>),
Wasm {
pc: usize,
backtrace: Backtrace,
signal_trap: Option<TrapCode>,
},
Lib {
trap_code: TrapCode,
backtrace: Backtrace,
},
OOM {
backtrace: Backtrace,
},
}
Expand description
Stores trace message with backtrace.
Variants§
User(Box<dyn Error + Send + Sync>)
A user-raised trap through raise_user_trap
.
Wasm
A trap raised from the Wasm generated code
Note: this trap is deterministic (assuming a deterministic host implementation)
Fields
Lib
A trap raised from a wasm libcall
Note: this trap is deterministic (assuming a deterministic host implementation)
Fields
OOM
A trap indicating that the runtime was unable to allocate sufficient memory.
Note: this trap is nondeterministic, since it depends on the host system.
Implementations§
Source§impl Trap
impl Trap
Sourcepub fn user(err: Box<dyn Error + Send + Sync>) -> Self
pub fn user(err: Box<dyn Error + Send + Sync>) -> Self
Construct a new Error with the given a user error.
Internally saves a backtrace when constructed.
Sourcepub fn wasm(
pc: usize,
backtrace: Backtrace,
signal_trap: Option<TrapCode>,
) -> Self
pub fn wasm( pc: usize, backtrace: Backtrace, signal_trap: Option<TrapCode>, ) -> Self
Construct a new Wasm trap with the given source location and backtrace.
Internally saves a backtrace when constructed.
Sourcepub fn lib(trap_code: TrapCode) -> Self
pub fn lib(trap_code: TrapCode) -> Self
Construct a new Wasm trap with the given trap code.
Internally saves a backtrace when constructed.
Sourcepub fn oom() -> Self
pub fn oom() -> Self
Construct a new OOM trap with the given source location and trap code.
Internally saves a backtrace when constructed.
Sourcepub fn downcast<T: Error + 'static>(self) -> Result<T, Self>
pub fn downcast<T: Error + 'static>(self) -> Result<T, Self>
Attempts to downcast the Trap
to a concrete type.
Sourcepub fn downcast_ref<T: Error + 'static>(&self) -> Option<&T>
pub fn downcast_ref<T: Error + 'static>(&self) -> Option<&T>
Attempts to downcast the Trap
to a concrete type.