Enum CanonicalFunction
pub enum CanonicalFunction {
Show 47 variants
Lift {
core_func_index: u32,
type_index: u32,
options: Box<[CanonicalOption]>,
},
Lower {
func_index: u32,
options: Box<[CanonicalOption]>,
},
ResourceNew {
resource: u32,
},
ResourceDrop {
resource: u32,
},
ResourceDropAsync {
resource: u32,
},
ResourceRep {
resource: u32,
},
ThreadSpawnRef {
func_ty_index: u32,
},
ThreadSpawnIndirect {
func_ty_index: u32,
table_index: u32,
},
ThreadAvailableParallelism,
BackpressureSet,
BackpressureInc,
BackpressureDec,
TaskReturn {
result: Option<ComponentValType>,
options: Box<[CanonicalOption]>,
},
TaskCancel,
ContextGet(u32),
ContextSet(u32),
ThreadYield {
cancellable: bool,
},
SubtaskDrop,
SubtaskCancel {
async_: bool,
},
StreamNew {
ty: u32,
},
StreamRead {
ty: u32,
options: Box<[CanonicalOption]>,
},
StreamWrite {
ty: u32,
options: Box<[CanonicalOption]>,
},
StreamCancelRead {
ty: u32,
async_: bool,
},
StreamCancelWrite {
ty: u32,
async_: bool,
},
StreamDropReadable {
ty: u32,
},
StreamDropWritable {
ty: u32,
},
FutureNew {
ty: u32,
},
FutureRead {
ty: u32,
options: Box<[CanonicalOption]>,
},
FutureWrite {
ty: u32,
options: Box<[CanonicalOption]>,
},
FutureCancelRead {
ty: u32,
async_: bool,
},
FutureCancelWrite {
ty: u32,
async_: bool,
},
FutureDropReadable {
ty: u32,
},
FutureDropWritable {
ty: u32,
},
ErrorContextNew {
options: Box<[CanonicalOption]>,
},
ErrorContextDebugMessage {
options: Box<[CanonicalOption]>,
},
ErrorContextDrop,
WaitableSetNew,
WaitableSetWait {
cancellable: bool,
memory: u32,
},
WaitableSetPoll {
cancellable: bool,
memory: u32,
},
WaitableSetDrop,
WaitableJoin,
ThreadIndex,
ThreadNewIndirect {
func_ty_index: u32,
table_index: u32,
},
ThreadSwitchTo {
cancellable: bool,
},
ThreadSuspend {
cancellable: bool,
},
ThreadResumeLater,
ThreadYieldTo {
cancellable: bool,
},
}Expand description
Represents a canonical function in a WebAssembly component.
Variants§
Lift
The function lifts a core WebAssembly function to the canonical ABI.
Fields
options: Box<[CanonicalOption]>The canonical options for the function.
Lower
The function lowers a canonical ABI function to a core WebAssembly function.
Fields
options: Box<[CanonicalOption]>The canonical options for the function.
ResourceNew
A function which creates a new owned handle to a resource.
ResourceDrop
A function which is used to drop resource handles of the specified type.
ResourceDropAsync
Same as ResourceDrop, but implements the async ABI.
ResourceRep
A function which returns the underlying i32-based representation of the specified resource.
ThreadSpawnRef
A function which spawns a new thread by invoking the shared function.
ThreadSpawnIndirect
A function which spawns a new thread by invoking the shared function
passed as an index into a funcref table.
Fields
ThreadAvailableParallelism
A function which returns the number of threads that can be expected to execute concurrently
BackpressureSet
A function which tells the host to enable or disable backpressure for the caller’s instance.
BackpressureInc
A function which tells the host to enable backpressure by incrementing the component’s counter by 1.
BackpressureDec
A function which tells the host to disable backpressure by decrementing the component’s counter by 1.
TaskReturn
A function which returns a result to the caller of a lifted export function. This allows the callee to continue executing after returning a result.
Fields
result: Option<ComponentValType>The result type, if any.
options: Box<[CanonicalOption]>The canonical options for the function.
TaskCancel
A function to acknowledge cancellation of the current task.
ContextGet(u32)
A context.get intrinsic for the ith slot of task-local storage.
ContextSet(u32)
A context.set intrinsic for the ith slot of task-local storage.
ThreadYield
A function which yields control to the host so that other tasks are able to make progress, if any.
SubtaskDrop
A function to drop a specified task which has completed.
SubtaskCancel
A function to cancel an in-progress task.
StreamNew
A function to create a new stream handle of the specified type.
StreamRead
A function to read from a stream of the specified type.
Fields
options: Box<[CanonicalOption]>Any options (e.g. string encoding) to use when storing values to memory.
StreamWrite
A function to write to a stream of the specified type.
Fields
options: Box<[CanonicalOption]>Any options (e.g. string encoding) to use when loading values from memory.
StreamCancelRead
A function to cancel an in-progress read from a stream of the
specified type.
Fields
StreamCancelWrite
A function to cancel an in-progress write to a stream of the specified
type.
Fields
StreamDropReadable
A function to drop the readable end of a stream of the specified
type.
StreamDropWritable
A function to drop the writable end of a stream of the specified
type.
FutureNew
A function to create a new future handle of the specified type.
FutureRead
A function to read from a future of the specified type.
Fields
options: Box<[CanonicalOption]>Any options (e.g. string encoding) to use when storing values to memory.
FutureWrite
A function to write to a future of the specified type.
Fields
options: Box<[CanonicalOption]>Any options (e.g. string encoding) to use when loading values from memory.
FutureCancelRead
A function to cancel an in-progress read from a future of the
specified type.
Fields
FutureCancelWrite
A function to cancel an in-progress write to a future of the specified
type.
Fields
FutureDropReadable
A function to drop the readable end of a future of the specified
type.
FutureDropWritable
A function to drop the writable end of a future of the specified
type.
ErrorContextNew
A function to create a new error-context with a specified debug
message.
Fields
options: Box<[CanonicalOption]>String encoding, memory, etc. to use when loading debug message.
ErrorContextDebugMessage
A function to get the debug message for a specified error-context.
Note that the debug message might not necessarily match what was passed
to error.new.
Fields
options: Box<[CanonicalOption]>String encoding, memory, etc. to use when storing debug message.
ErrorContextDrop
A function to drop a specified error-context.
WaitableSetNew
A function to create a new waitable-set.
WaitableSetWait
A function to block on the next item within a waitable-set.
Fields
WaitableSetPoll
A function to check if any items are ready within a waitable-set.
Fields
WaitableSetDrop
A function to drop a waitable-set.
WaitableJoin
A function to add an item to a waitable-set.
ThreadIndex
A function to get the index of the current thread.
ThreadNewIndirect
A function to create a new thread with the specified start function.
Fields
ThreadSwitchTo
A function to suspend the current thread and switch to the given thread.
ThreadSuspend
A function to suspend the current thread, immediately yielding to any transitive async-lowered calling component.
ThreadResumeLater
A function to schedule the given thread to be resumed later.
ThreadYieldTo
A function to suspend the current thread and switch to the given thread.
Trait Implementations§
§impl Clone for CanonicalFunction
impl Clone for CanonicalFunction
§fn clone(&self) -> CanonicalFunction
fn clone(&self) -> CanonicalFunction
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for CanonicalFunction
impl Debug for CanonicalFunction
§impl<'a> FromReader<'a> for CanonicalFunction
impl<'a> FromReader<'a> for CanonicalFunction
§fn from_reader(
reader: &mut BinaryReader<'a>,
) -> Result<CanonicalFunction, BinaryReaderError>
fn from_reader( reader: &mut BinaryReader<'a>, ) -> Result<CanonicalFunction, BinaryReaderError>
Self from the provided binary reader, returning an
error if it is unable to do so.§impl PartialEq for CanonicalFunction
impl PartialEq for CanonicalFunction
impl Eq for CanonicalFunction
impl StructuralPartialEq for CanonicalFunction
Auto Trait Implementations§
impl Freeze for CanonicalFunction
impl RefUnwindSafe for CanonicalFunction
impl Send for CanonicalFunction
impl Sync for CanonicalFunction
impl Unpin for CanonicalFunction
impl UnwindSafe for CanonicalFunction
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more