pub struct PluginRegistry { /* private fields */ }Expand description
Plugin registry for managing transpiler plugins
Implementations§
Source§impl PluginRegistry
impl PluginRegistry
Sourcepub fn register(&mut self, plugin: Box<dyn TranspilerPlugin>) -> Result<()>
pub fn register(&mut self, plugin: Box<dyn TranspilerPlugin>) -> Result<()>
Register a transpiler plugin
Sourcepub fn get(&self, name: &str) -> Option<&dyn TranspilerPlugin>
pub fn get(&self, name: &str) -> Option<&dyn TranspilerPlugin>
Get plugin by name
Sourcepub fn get_mut(&mut self, name: &str) -> Option<&mut dyn TranspilerPlugin>
pub fn get_mut(&mut self, name: &str) -> Option<&mut dyn TranspilerPlugin>
Get mutable reference to plugin by name
Sourcepub fn get_for_language(
&self,
language: &Language,
) -> Vec<&dyn TranspilerPlugin>
pub fn get_for_language( &self, language: &Language, ) -> Vec<&dyn TranspilerPlugin>
Get all plugins that support a language
Sourcepub fn list_plugins(&self) -> Vec<String>
pub fn list_plugins(&self) -> Vec<String>
Get all registered plugin names
Sourcepub fn supported_languages(&self) -> Vec<Language>
pub fn supported_languages(&self) -> Vec<Language>
Get languages supported by all plugins
Sourcepub fn unregister(&mut self, name: &str) -> Result<()>
pub fn unregister(&mut self, name: &str) -> Result<()>
Unregister a plugin and cleanup
Sourcepub fn cleanup_all(&mut self) -> Result<()>
pub fn cleanup_all(&mut self) -> Result<()>
Cleanup all plugins
Trait Implementations§
Source§impl Default for PluginRegistry
impl Default for PluginRegistry
Auto Trait Implementations§
impl Freeze for PluginRegistry
impl !RefUnwindSafe for PluginRegistry
impl Send for PluginRegistry
impl Sync for PluginRegistry
impl Unpin for PluginRegistry
impl !UnwindSafe for PluginRegistry
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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