pub struct PluginRegistry { /* private fields */ }Expand description
The plugin registry manages plugin discovery, registration, and execution.
Implementations§
Source§impl PluginRegistry
impl PluginRegistry
Sourcepub fn new(config: &ProjectConfig) -> Result<Self, ForgeGuardError>
pub fn new(config: &ProjectConfig) -> Result<Self, ForgeGuardError>
Create a new registry, scanning configured directories for plugins.
Sourcepub fn register_builtin(&mut self, plugin: Box<dyn Plugin>)
pub fn register_builtin(&mut self, plugin: Box<dyn Plugin>)
Register a built-in plugin. Returns an error if a plugin with the same name exists.
Sourcepub fn list_plugins(&self) -> Vec<PluginInfo>
pub fn list_plugins(&self) -> Vec<PluginInfo>
List all registered plugins (both built-in and external).
Sourcepub fn get_plugin(&self, name: &str) -> Option<PluginInfo>
pub fn get_plugin(&self, name: &str) -> Option<PluginInfo>
Get info for a specific plugin by name.
Sourcepub fn plugin_count(&self) -> usize
pub fn plugin_count(&self) -> usize
Get the number of registered plugins.
Sourcepub fn enabled_count(&self) -> usize
pub fn enabled_count(&self) -> usize
Get the number of enabled plugins.
Sourcepub fn execute_all(&self, ctx: &PluginContext) -> Vec<PluginExecutionResult>
pub fn execute_all(&self, ctx: &PluginContext) -> Vec<PluginExecutionResult>
Execute all enabled plugins and return their findings.
Built-in plugins are executed in-process. External plugins are executed as subprocesses via the JSON IPC protocol.
Sourcepub fn enable_plugin(&mut self, name: &str) -> bool
pub fn enable_plugin(&mut self, name: &str) -> bool
Enable a plugin by name.
Sourcepub fn disable_plugin(&mut self, name: &str) -> bool
pub fn disable_plugin(&mut self, name: &str) -> bool
Disable a plugin by name.
Trait Implementations§
Source§impl Clone for PluginRegistry
impl Clone for PluginRegistry
Auto Trait Implementations§
impl !RefUnwindSafe for PluginRegistry
impl !UnwindSafe for PluginRegistry
impl Freeze for PluginRegistry
impl Send for PluginRegistry
impl Sync for PluginRegistry
impl Unpin for PluginRegistry
impl UnsafeUnpin 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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