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 i
th slot of task-local storage.
ContextSet(u32)
A context.set
intrinsic for the i
th 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