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() -> PluginManager
Sourcepub async fn finalize_registration(&self) -> Result<(), Error>
pub async fn finalize_registration(&self) -> Result<(), Error>
验证插件依赖
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