Skip to main content

CanonicalFunction

Enum CanonicalFunction 

pub enum CanonicalFunction {
Show 49 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, }, ResourceRep { resource: u32, }, ThreadSpawnRef { func_ty_index: u32, }, ThreadSpawnIndirect { func_ty_index: u32, table_index: u32, }, ThreadAvailableParallelism, BackpressureInc, BackpressureDec, TaskReturn { result: Option<ComponentValType>, options: Box<[CanonicalOption]>, }, TaskCancel, ContextGet { ty: ValType, slot: u32, }, ContextSet { ty: ValType, slot: u32, }, ThreadYield, SubtaskDrop, SubtaskCancel { async_: bool, }, StreamNew { ty: u32, }, StreamRead { ty: u32, options: Box<[CanonicalOption]>, }, StreamWrite { ty: u32, options: Box<[CanonicalOption]>, }, StreamForward { ty: u32, }, 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]>, }, FutureForward { ty: u32, }, 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 { memory: u32, }, WaitableSetPoll { memory: u32, }, WaitableSetDrop, WaitableJoin, ThreadIndex, ThreadNewIndirect { func_ty_index: u32, table_index: u32, }, ThreadResumeLater, ThreadSuspend, ThreadSuspendThenResume, ThreadYieldThenResume, ThreadSuspendThenPromote, ThreadYieldThenPromote,
}
Expand description

Represents a canonical function in a WebAssembly component.

Variants§

§

Lift

The function lifts a core WebAssembly function to the canonical ABI.

Fields

§core_func_index: u32

The index of the core WebAssembly function to lift.

§type_index: u32

The index of the lifted function’s type.

§options: Box<[CanonicalOption]>

The canonical options for the function.

§

Lower

The function lowers a canonical ABI function to a core WebAssembly function.

Fields

§func_index: u32

The index of the function to lower.

§options: Box<[CanonicalOption]>

The canonical options for the function.

§

ResourceNew

A function which creates a new owned handle to a resource.

Fields

§resource: u32

The type index of the resource that’s being created.

§

ResourceDrop

A function which is used to drop resource handles of the specified type.

Fields

§resource: u32

The type index of the resource that’s being dropped.

§

ResourceRep

A function which returns the underlying i32-based representation of the specified resource.

Fields

§resource: u32

The type index of the resource that’s being accessed.

§

ThreadSpawnRef

A function which spawns a new thread by invoking the shared function.

Fields

§func_ty_index: u32

The index of the function type to spawn.

§

ThreadSpawnIndirect

A function which spawns a new thread by invoking the shared function passed as an index into a funcref table.

Fields

§func_ty_index: u32

The index of the function type to spawn.

§table_index: u32

The index of the table to use for the indirect spawn.

§

ThreadAvailableParallelism

A function which returns the number of threads that can be expected to execute concurrently

§

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

A context.get intrinsic for the ith slot of task-local storage.

Fields

§ty: ValType

The type of the slot. Currently only ValType::I32 and ValType::I64 are accepted by the validator (with I64 gated on the component-model 64-bit feature).

§slot: u32

The index of the task-local storage slot.

§

ContextSet

A context.set intrinsic for the ith slot of task-local storage.

Fields

§ty: ValType

The type of the slot. Currently only ValType::I32 and ValType::I64 are accepted by the validator (with I64 gated on the component-model 64-bit feature).

§slot: u32

The index of the task-local storage slot.

§

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.

Fields

§async_: bool

If false, block until cancellation completes rather than return BLOCKED.

§

StreamNew

A function to create a new stream handle of the specified type.

Fields

§ty: u32

The stream type to instantiate.

§

StreamRead

A function to read from a stream of the specified type.

Fields

§ty: u32

The stream type to expect.

§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

§ty: u32

The stream type to expect.

§options: Box<[CanonicalOption]>

Any options (e.g. string encoding) to use when loading values from memory.

§

StreamForward

A function to forward all remaining elements from the readable end of one stream to the writable end of another stream of the same specified type, transferring both ends out of the calling instance.

Fields

§ty: u32

The stream type to expect.

§

StreamCancelRead

A function to cancel an in-progress read from a stream of the specified type.

Fields

§ty: u32

The stream type to expect.

§async_: bool

If false, block until cancellation completes rather than return BLOCKED.

§

StreamCancelWrite

A function to cancel an in-progress write to a stream of the specified type.

Fields

§ty: u32

The stream type to expect.

§async_: bool

If false, block until cancellation completes rather than return BLOCKED.

§

StreamDropReadable

A function to drop the readable end of a stream of the specified type.

Fields

§ty: u32

The stream type to expect.

§

StreamDropWritable

A function to drop the writable end of a stream of the specified type.

Fields

§ty: u32

The stream type to expect.

§

FutureNew

A function to create a new future handle of the specified type.

Fields

§ty: u32

The future type to instantiate.

§

FutureRead

A function to read from a future of the specified type.

Fields

§ty: u32

The future type to expect.

§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

§ty: u32

The future type to expect.

§options: Box<[CanonicalOption]>

Any options (e.g. string encoding) to use when loading values from memory.

§

FutureForward

A function to forward the value of the readable end of one future to the writable end of another future of the same specified type, transferring both ends out of the calling instance.

Fields

§ty: u32

The future type to expect.

§

FutureCancelRead

A function to cancel an in-progress read from a future of the specified type.

Fields

§ty: u32

The future type to expect.

§async_: bool

If false, block until cancellation completes rather than return BLOCKED.

§

FutureCancelWrite

A function to cancel an in-progress write to a future of the specified type.

Fields

§ty: u32

The future type to expect.

§async_: bool

If false, block until cancellation completes rather than return BLOCKED.

§

FutureDropReadable

A function to drop the readable end of a future of the specified type.

Fields

§ty: u32

The future type to expect.

§

FutureDropWritable

A function to drop the writable end of a future of the specified type.

Fields

§ty: u32

The future type to expect.

§

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

§memory: u32

Which memory the results of this operation are stored in.

§

WaitableSetPoll

A function to check if any items are ready within a waitable-set.

Fields

§memory: u32

Which memory the results of this operation are stored in.

§

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

§func_ty_index: u32

The index of the function type to use as the start function.

§table_index: u32

The index of the table to use.

§

ThreadResumeLater

A function to schedule the given thread to be resumed later.

§

ThreadSuspend

A function to suspend the current thread, immediately yielding to any transitive async-lowered calling component.

§

ThreadSuspendThenResume

The thread.suspend-then-resume intrinsic

§

ThreadYieldThenResume

The thread.yield-then-resume intrinsic

§

ThreadSuspendThenPromote

The thread.suspend-then-promote intrinsic

§

ThreadYieldThenPromote

The thread.yield-then-promote intrinsic

Trait Implementations§

§

impl Clone for CanonicalFunction

§

fn clone(&self) -> CanonicalFunction

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for CanonicalFunction

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Eq for CanonicalFunction

§

impl<'a> FromReader<'a> for CanonicalFunction

§

fn from_reader( reader: &mut BinaryReader<'a>, ) -> Result<CanonicalFunction, Error>

Attempts to read Self from the provided binary reader, returning an error if it is unable to do so.
§

impl PartialEq for CanonicalFunction

§

fn eq(&self, other: &CanonicalFunction) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
§

impl StructuralPartialEq for CanonicalFunction

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Pointee for T

Source§

type Pointer = u32

Source§

fn debug( pointer: <T as Pointee>::Pointer, f: &mut Formatter<'_>, ) -> Result<(), Error>

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more