Skip to main content

FunctionBindgen

Struct FunctionBindgen 

Source
pub struct FunctionBindgen<'a> {
Show 25 fields pub resource_map: &'a ResourceMap, 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_async: bool, pub canon_opts: &'a CanonicalOptions, pub iface_name: Option<&'a str>, pub asmjs: bool,
}

Fields§

§resource_map: &'a ResourceMap

Mapping of resources for types that have corresponding definitions 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 function

§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_async: 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

§asmjs: bool

Whether the callee was transpiled from Wasm to JS (asm.js) and thus needs shimming for i64

Trait Implementations§

Source§

impl Bindgen for FunctionBindgen<'_>

Source§

fn sizes(&self) -> &SizeAlign

Get the sizes and alignment for a given structure

Source§

fn push_block(&mut self)

Push a new block of code

Source§

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

Finish a block of code

Source§

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

Output the return pointer

Source§

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

Check whether a list of the given element type can be represented as a builtni JS type

§Arguments
  • resolve - the Resolve that might be used to resolve nested types (i.e. [Type::TypeId])
  • elem_ty - the Type of the element stored in the list
Source§

type Operand = String

The intermediate type for fragments of code for this type. Read more
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> UnsafeUnpin 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.