pub struct PluginManager { /* private fields */ }Expand description
Plugin manager - registry for all extensions
The kernel uses this to discover and invoke extensions.
Implementations§
Source§impl PluginManager
impl PluginManager
Sourcepub fn register_storage(
&self,
ext: Arc<dyn StorageExtension>,
) -> KernelResult<()>
pub fn register_storage( &self, ext: Arc<dyn StorageExtension>, ) -> KernelResult<()>
Register a storage extension
Sourcepub fn set_active_storage(&self, name: &str) -> KernelResult<()>
pub fn set_active_storage(&self, name: &str) -> KernelResult<()>
Set the active storage backend
Sourcepub fn storage(&self) -> Option<Arc<dyn StorageExtension>>
pub fn storage(&self) -> Option<Arc<dyn StorageExtension>>
Get the active storage backend
Sourcepub fn register_index(
&self,
ext: Arc<RwLock<dyn IndexExtension>>,
) -> KernelResult<()>
pub fn register_index( &self, ext: Arc<RwLock<dyn IndexExtension>>, ) -> KernelResult<()>
Register an index extension
Sourcepub fn index(&self, name: &str) -> Option<Arc<RwLock<dyn IndexExtension>>>
pub fn index(&self, name: &str) -> Option<Arc<RwLock<dyn IndexExtension>>>
Get an index extension by name
Sourcepub fn list_index_types(&self) -> Vec<String>
pub fn list_index_types(&self) -> Vec<String>
List registered index types
Sourcepub fn register_observability(
&self,
ext: Arc<dyn ObservabilityExtension>,
) -> KernelResult<()>
pub fn register_observability( &self, ext: Arc<dyn ObservabilityExtension>, ) -> KernelResult<()>
Register an observability extension
Multiple observability extensions can be registered (fan-out to all)
Sourcepub fn counter_inc(&self, name: &str, value: u64, labels: &[(&str, &str)])
pub fn counter_inc(&self, name: &str, value: u64, labels: &[(&str, &str)])
Record a counter across all observability extensions
Sourcepub fn gauge_set(&self, name: &str, value: f64, labels: &[(&str, &str)])
pub fn gauge_set(&self, name: &str, value: f64, labels: &[(&str, &str)])
Record a gauge across all observability extensions
Sourcepub fn histogram_observe(&self, name: &str, value: f64, labels: &[(&str, &str)])
pub fn histogram_observe(&self, name: &str, value: f64, labels: &[(&str, &str)])
Record a histogram observation across all observability extensions
Sourcepub fn report_health(&self, health: &HealthInfo)
pub fn report_health(&self, health: &HealthInfo)
Report health to all observability extensions
Sourcepub fn has_observability(&self) -> bool
pub fn has_observability(&self) -> bool
Check if any observability is configured
Sourcepub fn register_compression(
&self,
ext: Arc<dyn CompressionExtension>,
) -> KernelResult<()>
pub fn register_compression( &self, ext: Arc<dyn CompressionExtension>, ) -> KernelResult<()>
Register a compression extension
Sourcepub fn compression(
&self,
algorithm: &str,
) -> Option<Arc<dyn CompressionExtension>>
pub fn compression( &self, algorithm: &str, ) -> Option<Arc<dyn CompressionExtension>>
Get a compression extension by algorithm name
Sourcepub fn list_compression(&self) -> Vec<String>
pub fn list_compression(&self) -> Vec<String>
List available compression algorithms
Sourcepub fn shutdown_all(&self) -> KernelResult<()>
pub fn shutdown_all(&self) -> KernelResult<()>
Shutdown all extensions gracefully
Sourcepub fn list_extensions(&self) -> Vec<ExtensionInfo>
pub fn list_extensions(&self) -> Vec<ExtensionInfo>
Get information about all registered extensions
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for PluginManager
impl !RefUnwindSafe for PluginManager
impl Send for PluginManager
impl Sync for PluginManager
impl Unpin for PluginManager
impl UnsafeUnpin for PluginManager
impl !UnwindSafe for PluginManager
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