pub enum WasmErrorInner {
PointerMap,
Deserialize(Vec<u8>),
Serialize(SerializedBytesError),
ErrorWhileError,
Memory,
Guest(String),
Host(String),
HostShortCircuit(Vec<u8>),
Compile(String),
CallError(String),
UninitializedSerializedModuleCache,
}
Expand description
Enum of all possible ERROR states that wasm can encounter.
Used in [wasm_error!
] for specifying the error type and message.
Variants§
PointerMap
While moving pointers and lengths across the host/guest, we hit an unsafe conversion such as a negative pointer or out of bounds value.
Deserialize(Vec<u8>)
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 almost 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. Whatever this is, it is very bad and probably not recoverable.
Guest(String)
Error with guest logic that the host doesn’t know about.
Host(String)
Error with host logic that the guest doesn’t know about.
HostShortCircuit(Vec<u8>)
Something to do with host logic that the guest doesn’t know about
AND wasm execution MUST immediately halt.
The Vec<u8>
holds the encoded data as though the guest had returned.
Compile(String)
Wasmer failed to compile machine code from wasm byte code.
CallError(String)
The host failed to call a function in the guest.
UninitializedSerializedModuleCache
Host attempted to interact with the module cache before it was initialized.
Implementations§
source§impl WasmErrorInner
impl WasmErrorInner
sourcepub fn maybe_corrupt(&self) -> bool
pub fn maybe_corrupt(&self) -> bool
Some errors indicate the wasm guest is potentially corrupt and so the host MUST NOT reuse it (e.g. in a cache of wasm instances). Other errors MAY NOT invalidate an instance cache on the host.
Trait Implementations§
source§impl Clone for WasmErrorInner
impl Clone for WasmErrorInner
source§fn clone(&self) -> WasmErrorInner
fn clone(&self) -> WasmErrorInner
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WasmErrorInner
impl Debug for WasmErrorInner
source§impl<'de> Deserialize<'de> for WasmErrorInner
impl<'de> Deserialize<'de> for WasmErrorInner
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<&str> for WasmErrorInner
impl From<&str> for WasmErrorInner
source§impl From<SerializedBytesError> for WasmErrorInner
impl From<SerializedBytesError> for WasmErrorInner
source§fn from(error: SerializedBytesError) -> Self
fn from(error: SerializedBytesError) -> Self
source§impl From<String> for WasmErrorInner
impl From<String> for WasmErrorInner
source§impl From<TryFromIntError> for WasmErrorInner
impl From<TryFromIntError> for WasmErrorInner
source§fn from(_: TryFromIntError) -> Self
fn from(_: TryFromIntError) -> Self
source§impl From<TryFromSliceError> for WasmErrorInner
impl From<TryFromSliceError> for WasmErrorInner
source§fn from(_: TryFromSliceError) -> Self
fn from(_: TryFromSliceError) -> Self
source§impl Hash for WasmErrorInner
impl Hash for WasmErrorInner
source§impl Ord for WasmErrorInner
impl Ord for WasmErrorInner
source§fn cmp(&self, other: &WasmErrorInner) -> Ordering
fn cmp(&self, other: &WasmErrorInner) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for WasmErrorInner
impl PartialEq for WasmErrorInner
source§fn eq(&self, other: &WasmErrorInner) -> bool
fn eq(&self, other: &WasmErrorInner) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for WasmErrorInner
impl PartialOrd for WasmErrorInner
source§fn partial_cmp(&self, other: &WasmErrorInner) -> Option<Ordering>
fn partial_cmp(&self, other: &WasmErrorInner) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl Serialize for WasmErrorInner
impl Serialize for WasmErrorInner
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 = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CallHasher for T
impl<T> CallHasher for T
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§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>
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.