CanonicalFunction

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

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

§

ResourceDropAsync

Same as ResourceDrop, but implements the async ABI.

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

§

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.

Fields

§cancellable: bool

If true, indicates the caller instance maybe reentered.

§

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.

§

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.

§

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

§cancellable: bool

Whether or not the guest can be reentered while calling this function.

§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

§cancellable: bool

Whether or not the guest can be reentered while calling this function.

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

§

ThreadSwitchTo

A function to suspend the current thread and switch to the given thread.

Fields

§cancellable: bool

Whether or not the thread can be cancelled while awaiting resumption.

§

ThreadSuspend

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

Fields

§cancellable: bool

Whether or not the thread can be cancelled while suspended.

§

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.

Fields

§cancellable: bool

Whether or not the thread can be cancelled while yielding.

Trait Implementations§

§

impl Clone for CanonicalFunction

§

fn clone(&self) -> CanonicalFunction

Returns a duplicate of the value. Read more
1.0.0 · 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<'a> FromReader<'a> for CanonicalFunction

§

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

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Eq for CanonicalFunction

§

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.
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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