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§
Source§impl Clone for CanonicalFunction
impl Clone for CanonicalFunction
Source§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 moreSource§impl Debug for CanonicalFunction
impl Debug for CanonicalFunction
Source§impl<'a> FromReader<'a> for CanonicalFunction
impl<'a> FromReader<'a> for CanonicalFunction
Source§fn from_reader(reader: &mut BinaryReader<'a>) -> Result<CanonicalFunction>
fn from_reader(reader: &mut BinaryReader<'a>) -> Result<CanonicalFunction>
Self from the provided binary reader, returning an
error if it is unable to do so.