pub enum WasmErrorInner {
PointerMap,
Deserialize(Vec<u8, Global>),
Serialize(SerializedBytesError),
ErrorWhileError,
Memory,
GuestResultHandling(String),
Guest(String),
Host(String),
HostShortCircuit(Vec<u8, Global>),
Compile(String),
CallError(String),
UninitializedSerializedModuleCache,
}
Variants
PointerMap
while converting pointers and lengths between u64 and i64 across the host/guest we hit either a negative number (cannot fit in u64) or very large number (cannot fit in i64) negative pointers and lengths are almost certainly indicative of a critical bug somewhere max i64 represents about 9.2 exabytes so should keep us going long enough to patch wasmer if commercial hardware ever threatens to overstep this limit
Deserialize(Vec<u8, Global>)
These bytes failed to deserialize. The host should provide nice debug info and context that the wasm guest won’t have.
Serialize(SerializedBytesError)
Something failed to serialize. This should be rare or impossible for basically everything that implements Serialize.
ErrorWhileError
Somehow we errored while erroring. For example, maybe we failed to serialize an error while attempting to serialize an error.
Memory
Something went wrong while writing or reading bytes to/from wasm memory. this means something like “reading 16 bytes did not produce 2x WasmSize ints” or maybe even “failed to write a byte to some pre-allocated wasm memory” whatever this is it is very bad and probably not recoverable
GuestResultHandling(String)
Failed to take bytes out of the guest and do something with it. The string is whatever error message comes back from the interal process.
Guest(String)
Something to do with guest logic that we don’t know about
Host(String)
Something to do with host logic that we don’t know about
HostShortCircuit(Vec<u8, Global>)
Something to do with host logic that we don’t know about
AND wasm execution MUST immediately halt.
The Vec
Compile(String)
Somehow wasmer failed to compile machine code from wasm byte code
CallError(String)
UninitializedSerializedModuleCache
Trait Implementations
sourceimpl Clone for WasmErrorInner
impl Clone for WasmErrorInner
sourcefn clone(&self) -> WasmErrorInner
fn clone(&self) -> WasmErrorInner
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for WasmErrorInner
impl Debug for WasmErrorInner
sourceimpl<'de> Deserialize<'de> for WasmErrorInner
impl<'de> Deserialize<'de> for WasmErrorInner
sourcefn deserialize<__D>(
__deserializer: __D
) -> Result<WasmErrorInner, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<WasmErrorInner, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl From<SerializedBytesError> for WasmErrorInner
impl From<SerializedBytesError> for WasmErrorInner
sourcefn from(error: SerializedBytesError) -> WasmErrorInner
fn from(error: SerializedBytesError) -> WasmErrorInner
Converts to this type from the input type.
sourceimpl From<TryFromIntError> for WasmErrorInner
impl From<TryFromIntError> for WasmErrorInner
sourcefn from(TryFromIntError) -> WasmErrorInner
fn from(TryFromIntError) -> WasmErrorInner
Converts to this type from the input type.
sourceimpl From<TryFromSliceError> for WasmErrorInner
impl From<TryFromSliceError> for WasmErrorInner
sourcefn from(TryFromSliceError) -> WasmErrorInner
fn from(TryFromSliceError) -> WasmErrorInner
Converts to this type from the input type.
sourceimpl Hash for WasmErrorInner
impl Hash for WasmErrorInner
sourceimpl Ord for WasmErrorInner
impl Ord for WasmErrorInner
sourceimpl PartialEq<WasmErrorInner> for WasmErrorInner
impl PartialEq<WasmErrorInner> for WasmErrorInner
sourcefn eq(&self, other: &WasmErrorInner) -> bool
fn eq(&self, other: &WasmErrorInner) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &WasmErrorInner) -> bool
fn ne(&self, other: &WasmErrorInner) -> bool
This method tests for !=
.
sourceimpl PartialOrd<WasmErrorInner> for WasmErrorInner
impl PartialOrd<WasmErrorInner> for WasmErrorInner
sourcefn partial_cmp(&self, other: &WasmErrorInner) -> Option<Ordering>
fn partial_cmp(&self, other: &WasmErrorInner) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl Serialize for WasmErrorInner
impl Serialize for WasmErrorInner
sourcefn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Eq for WasmErrorInner
impl StructuralEq for WasmErrorInner
impl StructuralPartialEq for WasmErrorInner
Auto Trait Implementations
impl RefUnwindSafe for WasmErrorInner
impl Send for WasmErrorInner
impl Sync for WasmErrorInner
impl Unpin for WasmErrorInner
impl UnwindSafe for WasmErrorInner
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<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more