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
Fields
A trap raised from the Wasm generated code
Note: this trap is deterministic (assuming a deterministic host implementation)
Lib
Fields
A trap raised from a wasm libcall
Note: this trap is deterministic (assuming a deterministic host implementation)
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.