FunctionBindgen

Struct FunctionBindgen 

Source
pub struct FunctionBindgen<'a> {
Show 25 fields pub resource_map: &'a ResourceMap, pub remote_resource_map: &'a RemoteResourceMap, pub clear_resource_borrows: bool, pub intrinsics: &'a mut BTreeSet<Intrinsic>, pub valid_lifting_optimization: bool, pub sizes: &'a SizeAlign, pub err: ErrHandling, pub tmp: usize, pub src: Source, pub block_storage: Vec<Source>, pub blocks: Vec<(String, Vec<String>)>, pub params: Vec<String>, pub memory: Option<&'a String>, pub realloc: Option<&'a String>, pub post_return: Option<&'a String>, pub tracing_prefix: &'a String, pub tracing_enabled: bool, pub encoding: StringEncoding, pub callee: &'a str, pub callee_resource_dynamic: bool, pub resolve: &'a Resolve, pub requires_async_porcelain: bool, pub is_guest_async_lifted: bool, pub canon_opts: &'a CanonicalOptions, pub iface_name: Option<&'a str>,
}

Fields§

§resource_map: &'a ResourceMap

Mapping of resources for types that have corresponding definitions locally

§remote_resource_map: &'a RemoteResourceMap

Mapping of resources for types that are defined only in the remote component and must be auto-vivicated locally.

§clear_resource_borrows: bool

Whether current resource borrows need to be deactivated

§intrinsics: &'a mut BTreeSet<Intrinsic>

Set of intrinsics

§valid_lifting_optimization: bool

Whether to perform valid lifting optimization

§sizes: &'a SizeAlign

Sizes and alignments for sub elements

§err: ErrHandling

Method of error handling

§tmp: usize

Temporary values

§src: Source

Source code of the function

§block_storage: Vec<Source>

Block storage

§blocks: Vec<(String, Vec<String>)>

Blocks of the fucntion

§params: Vec<String>

Parameters of the function

§memory: Option<&'a String>

Memory variable

§realloc: Option<&'a String>

Realloc function name

§post_return: Option<&'a String>

Post return function name

§tracing_prefix: &'a String

Prefix to use when printing tracing information

§tracing_enabled: bool

Whether tracing is enabled

§encoding: StringEncoding

Method if string encoding

§callee: &'a str

Callee of the function

§callee_resource_dynamic: bool

Whether the callee is dynamic (i.e. has multiple operands)

§resolve: &'a Resolve

The [wit_bindgen::Resolve] containing extracted WIT information

§requires_async_porcelain: bool

Whether the function requires async porcelain

In the case of an import this likely implies the use of JSPI and in the case of an export this is simply code generation metadata.

§is_guest_async_lifted: bool

Whether the function is guest async lifted (i.e. WASI P3)

§canon_opts: &'a CanonicalOptions

Canon opts

§iface_name: Option<&'a str>

Interface name

Trait Implementations§

Source§

impl Bindgen for FunctionBindgen<'_>

Source§

type Operand = String

The intermediate type for fragments of code for this type. Read more
Source§

fn sizes(&self) -> &SizeAlign

Returns size information that was previously calculated for all types.
Source§

fn push_block(&mut self)

Enters a new block of code to generate code for. Read more
Source§

fn finish_block(&mut self, operands: &mut Vec<String>)

Indicates to the code generator that a block is completed, and the operand specified was the resulting value of the block. Read more
Source§

fn return_pointer( &mut self, _size: ArchitectureSize, _align: Alignment, ) -> String

Gets a operand reference to the return pointer area. Read more
Source§

fn is_list_canonical(&self, resolve: &Resolve, ty: &Type) -> bool

Returns whether or not the specified element type is represented in a “canonical” form for lists. This dictates whether the ListCanonLower and ListCanonLift instructions are used or not.
Source§

fn emit( &mut self, resolve: &Resolve, inst: &Instruction<'_>, operands: &mut Vec<String>, results: &mut Vec<String>, )

Emit code to implement the given instruction. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for FunctionBindgen<'a>

§

impl<'a> RefUnwindSafe for FunctionBindgen<'a>

§

impl<'a> Send for FunctionBindgen<'a>

§

impl<'a> Sync for FunctionBindgen<'a>

§

impl<'a> Unpin for FunctionBindgen<'a>

§

impl<'a> !UnwindSafe for FunctionBindgen<'a>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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