Enum hdk::prelude::WasmErrorInner
pub enum WasmErrorInner {
PointerMap,
Deserialize(Vec<u8, Global>),
Serialize(SerializedBytesError),
ErrorWhileError,
Memory,
Guest(String),
Host(String),
HostShortCircuit(Vec<u8, Global>),
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, 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 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, Global>)
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
impl WasmErrorInner
impl WasmErrorInner
pub 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
impl Clone for WasmErrorInner
impl Clone for WasmErrorInner
fn clone(&self) -> WasmErrorInner
fn clone(&self) -> WasmErrorInner
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreimpl Debug for WasmErrorInner
impl Debug for WasmErrorInner
impl<'de> Deserialize<'de> for WasmErrorInner
impl<'de> Deserialize<'de> for WasmErrorInner
fn 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>,
impl From<&str> for WasmErrorInner
impl From<&str> for WasmErrorInner
fn from(s: &str) -> WasmErrorInner
fn from(s: &str) -> WasmErrorInner
impl From<SerializedBytesError> for WasmErrorInner
impl From<SerializedBytesError> for WasmErrorInner
fn from(error: SerializedBytesError) -> WasmErrorInner
fn from(error: SerializedBytesError) -> WasmErrorInner
impl From<String> for WasmErrorInner
impl From<String> for WasmErrorInner
fn from(s: String) -> WasmErrorInner
fn from(s: String) -> WasmErrorInner
impl From<TryFromIntError> for WasmErrorInner
impl From<TryFromIntError> for WasmErrorInner
fn from(_: TryFromIntError) -> WasmErrorInner
fn from(_: TryFromIntError) -> WasmErrorInner
impl From<TryFromSliceError> for WasmErrorInner
impl From<TryFromSliceError> for WasmErrorInner
fn from(_: TryFromSliceError) -> WasmErrorInner
fn from(_: TryFromSliceError) -> WasmErrorInner
impl Hash for WasmErrorInner
impl Hash for WasmErrorInner
impl Ord for WasmErrorInner
impl Ord for WasmErrorInner
fn cmp(&self, other: &WasmErrorInner) -> Ordering
fn cmp(&self, other: &WasmErrorInner) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
impl PartialEq<WasmErrorInner> for WasmErrorInner
impl PartialEq<WasmErrorInner> for WasmErrorInner
fn eq(&self, other: &WasmErrorInner) -> bool
fn eq(&self, other: &WasmErrorInner) -> bool
impl PartialOrd<WasmErrorInner> for WasmErrorInner
impl PartialOrd<WasmErrorInner> for WasmErrorInner
fn partial_cmp(&self, other: &WasmErrorInner) -> Option<Ordering>
fn partial_cmp(&self, other: &WasmErrorInner) -> Option<Ordering>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl Serialize for WasmErrorInner
impl Serialize for WasmErrorInner
fn 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,
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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
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>
sourceimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.