pub struct PluginManager {
pub plugins: Arc<RwLock<HashMap<String, Arc<Plugin>>>>,
pub dependency_manager: Arc<RwLock<DependencyManager>>,
pub plugin_order: Arc<RwLock<Vec<String>>>,
pub initialized: Arc<RwLock<bool>>,
}Expand description
插件管理器
Fields§
§plugins: Arc<RwLock<HashMap<String, Arc<Plugin>>>>§dependency_manager: Arc<RwLock<DependencyManager>>§plugin_order: Arc<RwLock<Vec<String>>>§initialized: Arc<RwLock<bool>>Implementations§
Source§impl PluginManager
impl PluginManager
pub fn new() -> Self
Sourcepub async fn finalize_registration(&self) -> Result<()>
pub async fn finalize_registration(&self) -> Result<()>
验证插件依赖
Sourcepub async fn get_sorted_plugins(&self) -> Vec<Arc<Plugin>>
pub async fn get_sorted_plugins(&self) -> Vec<Arc<Plugin>>
获取排序后的插件 按照依赖关系排序
Sourcepub async fn is_initialized(&self) -> bool
pub async fn is_initialized(&self) -> bool
检查初始化状态
Trait Implementations§
Source§impl Clone for PluginManager
impl Clone for PluginManager
Source§fn clone(&self) -> PluginManager
fn clone(&self) -> PluginManager
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PluginManager
impl !RefUnwindSafe for PluginManager
impl Send for PluginManager
impl Sync for PluginManager
impl Unpin 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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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