wit_bindgen_core

Trait InterfaceGenerator

Source
pub trait InterfaceGenerator<'a> {
Show 14 methods // Required methods fn resolve(&self) -> &'a Resolve; fn type_record( &mut self, id: TypeId, name: &str, record: &Record, docs: &Docs, ); fn type_resource(&mut self, id: TypeId, name: &str, docs: &Docs); fn type_flags(&mut self, id: TypeId, name: &str, flags: &Flags, docs: &Docs); fn type_tuple(&mut self, id: TypeId, name: &str, flags: &Tuple, docs: &Docs); fn type_variant( &mut self, id: TypeId, name: &str, variant: &Variant, docs: &Docs, ); fn type_option( &mut self, id: TypeId, name: &str, payload: &Type, docs: &Docs, ); fn type_result( &mut self, id: TypeId, name: &str, result: &Result_, docs: &Docs, ); fn type_enum(&mut self, id: TypeId, name: &str, enum_: &Enum, docs: &Docs); fn type_alias(&mut self, id: TypeId, name: &str, ty: &Type, docs: &Docs); fn type_list(&mut self, id: TypeId, name: &str, ty: &Type, docs: &Docs); fn type_builtin(&mut self, id: TypeId, name: &str, ty: &Type, docs: &Docs); // Provided methods fn types(&mut self, iface: InterfaceId) { ... } fn define_type(&mut self, name: &str, id: TypeId) { ... }
}
Expand description

This is a possible replacement for the Generator trait above, currently only used by the JS bindings for generating bindings for a component.

The current plan is to see how things shake out with worlds and various other generators to see if everything can be updated to a less per-*.wit-file centric interface in the future. Even this will probably change for JS though. In any case it’s something that was useful for JS and is suitable to replace otherwise at any time.

Required Methods§

Source

fn resolve(&self) -> &'a Resolve

Source

fn type_record(&mut self, id: TypeId, name: &str, record: &Record, docs: &Docs)

Source

fn type_resource(&mut self, id: TypeId, name: &str, docs: &Docs)

Source

fn type_flags(&mut self, id: TypeId, name: &str, flags: &Flags, docs: &Docs)

Source

fn type_tuple(&mut self, id: TypeId, name: &str, flags: &Tuple, docs: &Docs)

Source

fn type_variant( &mut self, id: TypeId, name: &str, variant: &Variant, docs: &Docs, )

Source

fn type_option(&mut self, id: TypeId, name: &str, payload: &Type, docs: &Docs)

Source

fn type_result(&mut self, id: TypeId, name: &str, result: &Result_, docs: &Docs)

Source

fn type_enum(&mut self, id: TypeId, name: &str, enum_: &Enum, docs: &Docs)

Source

fn type_alias(&mut self, id: TypeId, name: &str, ty: &Type, docs: &Docs)

Source

fn type_list(&mut self, id: TypeId, name: &str, ty: &Type, docs: &Docs)

Source

fn type_builtin(&mut self, id: TypeId, name: &str, ty: &Type, docs: &Docs)

Provided Methods§

Source

fn types(&mut self, iface: InterfaceId)

Source

fn define_type(&mut self, name: &str, id: TypeId)

Implementors§