pub struct ProviderLoader {
libraries: RwLock<Vec<Library>>,
}
Expand description
Provider loader manages dynamic loading of provider libraries
Fields§
§libraries: RwLock<Vec<Library>>
Loaded libraries (kept alive)
Implementations§
Source§impl ProviderLoader
impl ProviderLoader
Sourcepub async fn load_from_directory<P: AsRef<Path>>(
&self,
directory: P,
context: Arc<dyn ProviderContext>,
) -> ProviderResult<Vec<(Arc<dyn Provider>, ProviderMetadata)>>
pub async fn load_from_directory<P: AsRef<Path>>( &self, directory: P, context: Arc<dyn ProviderContext>, ) -> ProviderResult<Vec<(Arc<dyn Provider>, ProviderMetadata)>>
Load providers from a directory
Sourcepub async fn load_from_directory_with_registry<P: AsRef<Path>>(
&self,
directory: P,
context: Arc<dyn ProviderContext>,
event_registry: Option<Arc<EventRegistry>>,
) -> ProviderResult<Vec<(Arc<dyn Provider>, ProviderMetadata)>>
pub async fn load_from_directory_with_registry<P: AsRef<Path>>( &self, directory: P, context: Arc<dyn ProviderContext>, event_registry: Option<Arc<EventRegistry>>, ) -> ProviderResult<Vec<(Arc<dyn Provider>, ProviderMetadata)>>
Load providers from a directory with optional event registry
Sourcepub async fn load_features_from_directory<P: AsRef<Path>>(
&self,
directory: P,
) -> ProviderResult<Vec<FeatureInterface>>
pub async fn load_features_from_directory<P: AsRef<Path>>( &self, directory: P, ) -> ProviderResult<Vec<FeatureInterface>>
Load feature interfaces from a directory (does not register as callable providers)
Sourcefn is_provider_library(&self, path: &Path) -> bool
fn is_provider_library(&self, path: &Path) -> bool
Check if a file is a provider library
Sourcepub async fn load_provider_from_file<P: AsRef<Path>>(
&self,
library_path: P,
context: Arc<dyn ProviderContext>,
) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
pub async fn load_provider_from_file<P: AsRef<Path>>( &self, library_path: P, context: Arc<dyn ProviderContext>, ) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
Load a provider from a specific file
Sourcepub async fn load_provider_from_file_with_registry<P: AsRef<Path>>(
&self,
library_path: P,
context: Arc<dyn ProviderContext>,
event_registry: Option<Arc<EventRegistry>>,
) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
pub async fn load_provider_from_file_with_registry<P: AsRef<Path>>( &self, library_path: P, context: Arc<dyn ProviderContext>, event_registry: Option<Arc<EventRegistry>>, ) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
Load a provider from a specific file with optional event registry
Sourcefn detect_provider_type(&self, lib: &Library) -> ProviderResult<ProviderType>
fn detect_provider_type(&self, lib: &Library) -> ProviderResult<ProviderType>
Detect what type of provider this library contains
Sourcepub async fn load_feature_interface_from_file<P: AsRef<Path>>(
&self,
library_path: P,
) -> ProviderResult<FeatureInterface>
pub async fn load_feature_interface_from_file<P: AsRef<Path>>( &self, library_path: P, ) -> ProviderResult<FeatureInterface>
Load a feature interface from a specific file
Sourceasync fn load_legacy_cpi(
&self,
lib: &Library,
library_path: &Path,
context: Arc<dyn ProviderContext>,
event_registry: Option<Arc<EventRegistry>>,
) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
async fn load_legacy_cpi( &self, lib: &Library, library_path: &Path, context: Arc<dyn ProviderContext>, event_registry: Option<Arc<EventRegistry>>, ) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
Load a legacy CPI and wrap it as a provider
Sourceasync fn load_modern_provider(
&self,
lib: &Library,
library_path: &Path,
context: Arc<dyn ProviderContext>,
event_registry: Option<Arc<EventRegistry>>,
) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
async fn load_modern_provider( &self, lib: &Library, library_path: &Path, context: Arc<dyn ProviderContext>, event_registry: Option<Arc<EventRegistry>>, ) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
Load a modern provider
Sourceasync fn load_feature_as_provider(
&self,
lib: &Library,
library_path: &Path,
context: Arc<dyn ProviderContext>,
) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
async fn load_feature_as_provider( &self, lib: &Library, library_path: &Path, context: Arc<dyn ProviderContext>, ) -> ProviderResult<(Arc<dyn Provider>, ProviderMetadata)>
Load a feature and wrap it as a provider
Auto Trait Implementations§
impl !Freeze for ProviderLoader
impl !RefUnwindSafe for ProviderLoader
impl Send for ProviderLoader
impl Sync for ProviderLoader
impl Unpin for ProviderLoader
impl !UnwindSafe for ProviderLoader
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