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
pc: usize
The program counter in generated code where this trap happened.
backtrace: Backtrace
Native stack backtrace at the time the trap occurred
A trap raised from the Wasm generated code
Note: this trap is deterministic (assuming a deterministic host implementation)
Lib
Fields
trap_code: TrapCode
Code of the trap.
backtrace: Backtrace
Native stack backtrace at the time the trap occurred
A trap raised from a wasm libcall
Note: this trap is deterministic (assuming a deterministic host implementation)
OOM
Fields
backtrace: Backtrace
Native stack backtrace at the time the OOM occurred
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
sourceimpl Trap
impl Trap
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.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Trap
impl Send for Trap
impl Sync for Trap
impl Unpin for Trap
impl !UnwindSafe for Trap
Blanket Implementations
impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for F where
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
sourceimpl<T> Upcastable for T where
T: 'static + Any + Send + Sync,
impl<T> Upcastable for T where
T: 'static + Any + Send + Sync,
sourcefn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
sourcefn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref