pub enum WasmError {
PointerMap,
Deserialize(Vec<u8, Global>),
Serialize(SerializedBytesError),
ErrorWhileError,
Memory,
GuestResultHandling(String),
Guest(String),
Host(String),
HostShortCircuit(Vec<u8, Global>),
Compile(String),
CallError(String),
}
Expand description
Enum of all possible ERROR codes that a Zome API Function could return.
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)
Trait Implementations
impl<'de> Deserialize<'de> for WasmError
impl<'de> Deserialize<'de> for WasmError
pub fn deserialize<__D>(
__deserializer: __D
) -> Result<WasmError, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
pub fn deserialize<__D>(
__deserializer: __D
) -> Result<WasmError, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl From<Infallible> for WasmError
impl From<Infallible> for WasmError
Allows ? in a TryFrom context downstream.
pub fn from(Infallible) -> WasmError
pub fn from(Infallible) -> WasmError
Performs the conversion.
impl From<SerializedBytesError> for WasmError
impl From<SerializedBytesError> for WasmError
pub fn from(error: SerializedBytesError) -> WasmError
pub fn from(error: SerializedBytesError) -> WasmError
Performs the conversion.
impl From<TryFromIntError> for WasmError
impl From<TryFromIntError> for WasmError
pub fn from(TryFromIntError) -> WasmError
pub fn from(TryFromIntError) -> WasmError
Performs the conversion.
impl From<TryFromSliceError> for WasmError
impl From<TryFromSliceError> for WasmError
pub fn from(TryFromSliceError) -> WasmError
pub fn from(TryFromSliceError) -> WasmError
Performs the conversion.
impl PartialOrd<WasmError> for WasmError
impl PartialOrd<WasmError> for WasmError
pub fn partial_cmp(&self, other: &WasmError) -> Option<Ordering>
pub fn partial_cmp(&self, other: &WasmError) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
pub fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
pub 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<'_> TryFrom<&'_ WasmError> for SerializedBytes
impl<'_> TryFrom<&'_ WasmError> for SerializedBytes
type Error = SerializedBytesError
type Error = SerializedBytesError
The type returned in the event of a conversion error.
pub fn try_from(t: &WasmError) -> Result<SerializedBytes, SerializedBytesError>
pub fn try_from(t: &WasmError) -> Result<SerializedBytes, SerializedBytesError>
Performs the conversion.
impl TryFrom<SerializedBytes> for WasmError
impl TryFrom<SerializedBytes> for WasmError
type Error = SerializedBytesError
type Error = SerializedBytesError
The type returned in the event of a conversion error.
pub fn try_from(sb: SerializedBytes) -> Result<WasmError, SerializedBytesError>
pub fn try_from(sb: SerializedBytes) -> Result<WasmError, SerializedBytesError>
Performs the conversion.
impl TryFrom<WasmError> for SerializedBytes
impl TryFrom<WasmError> for SerializedBytes
type Error = SerializedBytesError
type Error = SerializedBytesError
The type returned in the event of a conversion error.
pub fn try_from(t: WasmError) -> Result<SerializedBytes, SerializedBytesError>
pub fn try_from(t: WasmError) -> Result<SerializedBytes, SerializedBytesError>
Performs the conversion.
impl StructuralEq for WasmError
impl StructuralPartialEq for WasmError
Auto Trait Implementations
impl RefUnwindSafe for WasmError
impl UnwindSafe for WasmError
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more