pub struct TraitBridgeSpec<'a> {
pub trait_def: &'a TypeDef,
pub bridge_config: &'a TraitBridgeConfig,
pub core_import: &'a str,
pub wrapper_prefix: &'a str,
}Expand description
Everything needed to generate a trait bridge for one trait.
Fields§
§trait_def: &'a TypeDefThe trait definition from the IR.
bridge_config: &'a TraitBridgeConfigBridge configuration from alef.toml.
core_import: &'a strCore crate import path (e.g., "kreuzberg").
wrapper_prefix: &'a strLanguage-specific prefix for the wrapper type (e.g., "Python", "Js", "Wasm").
Implementations§
Source§impl<'a> TraitBridgeSpec<'a>
impl<'a> TraitBridgeSpec<'a>
Sourcepub fn wrapper_name(&self) -> String
pub fn wrapper_name(&self) -> String
Wrapper struct name: {prefix}{TraitName}Bridge (e.g., PythonOcrBackendBridge).
Sourcepub fn trait_snake(&self) -> String
pub fn trait_snake(&self) -> String
Snake-case version of the trait name (e.g., "ocr_backend").
Sourcepub fn trait_path(&self) -> String
pub fn trait_path(&self) -> String
Full Rust path to the trait (e.g., kreuzberg::OcrBackend).
Sourcepub fn required_methods(&self) -> Vec<&'a MethodDef>
pub fn required_methods(&self) -> Vec<&'a MethodDef>
Methods that are required (no default impl) — must be provided by the foreign object.
Sourcepub fn optional_methods(&self) -> Vec<&'a MethodDef>
pub fn optional_methods(&self) -> Vec<&'a MethodDef>
Methods that have a default impl — optional on the foreign object.
Auto Trait Implementations§
impl<'a> Freeze for TraitBridgeSpec<'a>
impl<'a> RefUnwindSafe for TraitBridgeSpec<'a>
impl<'a> Send for TraitBridgeSpec<'a>
impl<'a> Sync for TraitBridgeSpec<'a>
impl<'a> Unpin for TraitBridgeSpec<'a>
impl<'a> UnsafeUnpin for TraitBridgeSpec<'a>
impl<'a> UnwindSafe for TraitBridgeSpec<'a>
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
Mutably borrows from an owned value. Read more