pub struct CodeGenerator { /* private fields */ }Expand description
Auto-generated bindings for an instance a component which
implements the world code-generator.
This structure can be created through a number of means depending on your requirements and what you have on hand:
-
The most convenient way is to use
CodeGenerator::instantiatewhich only needs aStore,Component, andLinker. -
Alternatively you can create a
CodeGeneratorPreahead of time with aComponentto front-load string lookups of exports once instead of per-instantiation. This method then usesCodeGeneratorPre::instantiateto create aCodeGenerator. -
If you’ve instantiated the instance yourself already then you can use
CodeGenerator::new.
These methods are all equivalent to one another and move around the tradeoff of what work is performed when.
Implementations§
Source§impl CodeGenerator
impl CodeGenerator
Sourcepub fn instantiate<_T>(
store: impl AsContextMut<Data = _T>,
component: &Component,
linker: &Linker<_T>,
) -> Result<CodeGenerator>
pub fn instantiate<_T>( store: impl AsContextMut<Data = _T>, component: &Component, linker: &Linker<_T>, ) -> Result<CodeGenerator>
Convenience wrapper around CodeGeneratorPre::new and
CodeGeneratorPre::instantiate.
Sourcepub fn new(
store: impl AsContextMut,
instance: &Instance,
) -> Result<CodeGenerator>
pub fn new( store: impl AsContextMut, instance: &Instance, ) -> Result<CodeGenerator>
Convenience wrapper around CodeGeneratorIndices::new and
CodeGeneratorIndices::load.
pub fn add_to_linker<T, D>(
linker: &mut Linker<T>,
host_getter: fn(&mut T) -> D::Data<'_>,
) -> Result<()>where
D: HostWithStore + HostWithStore + HostWithStore,
for<'a> D::Data<'a>: Host + Host + Host,
T: 'static,
pub fn forge_plugin_generator_api(&self) -> &Guest
Auto Trait Implementations§
impl Freeze for CodeGenerator
impl RefUnwindSafe for CodeGenerator
impl Send for CodeGenerator
impl Sync for CodeGenerator
impl Unpin for CodeGenerator
impl UnsafeUnpin for CodeGenerator
impl UnwindSafe for CodeGenerator
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> 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