pub struct MainEngine { /* private fields */ }Implementations§
Source§impl MainEngine
impl MainEngine
Sourcepub fn new(event: Option<Arc<EventEngine>>) -> Self
pub fn new(event: Option<Arc<EventEngine>>) -> Self
注入式创建:Some(bus) 复用外部引擎;None 自建(start() 时拉起)。
Sourcepub fn event_engine(&self) -> &Arc<EventEngine> ⓘ
pub fn event_engine(&self) -> &Arc<EventEngine> ⓘ
宿主级引擎句柄(测试/装配工具可用;插件不可见——ctx 不暴露)。
Sourcepub fn add_plugin(
&self,
plugin: Arc<impl Plugin + 'static>,
) -> Result<(), PluginError>
pub fn add_plugin( &self, plugin: Arc<impl Plugin + 'static>, ) -> Result<(), PluginError>
统一格式注册(名/D2、重名、同名自依赖、deps 存在性校验)。
Sourcepub fn get_state(&self, name: &str) -> Option<PluginState>
pub fn get_state(&self, name: &str) -> Option<PluginState>
状态查询。
Sourcepub fn get_plugin(&self, name: &str) -> Option<PluginInfo>
pub fn get_plugin(&self, name: &str) -> Option<PluginInfo>
信息快照。
Sourcepub fn get_typed<T: Plugin + 'static>(&self, name: &str) -> Option<Arc<T>>
pub fn get_typed<T: Plugin + 'static>(&self, name: &str) -> Option<Arc<T>>
类型安全获取(get_typed):同一分配的 Arc
Sourcepub fn plugin_names(&self) -> Vec<String>
pub fn plugin_names(&self) -> Vec<String>
注册名列表(注册序)。
Sourcepub fn mail_stats(&self, name: &str) -> Option<MailStats>
pub fn mail_stats(&self, name: &str) -> Option<MailStats>
运行统计(溢出丢弃/panic 计数)。未注册 → None。
Sourcepub fn start(&self) -> Result<(), PluginError>
pub fn start(&self) -> Result<(), PluginError>
启动全部插件:总线 start → deps 拓扑序逐个装配 (on_init → 建邮箱 → spawn worker → state=Running → 注册 forwarder → on_start)。 依赖环 → DepCycle;重复 start 幂等 Ok;已 close → Stopped。
Sourcepub fn remove_plugin(&self, name: &str) -> Result<(), PluginError>
pub fn remove_plugin(&self, name: &str) -> Result<(), PluginError>
移除单个插件:Running 者执行五步(UNKNOWN 表项报错);仍被其他插件 deps 引用 时,eLog 警告(定稿 policy:允许移除 + 警告;依赖方后续 ask 走预检/断连失败)。
Auto Trait Implementations§
impl !Freeze for MainEngine
impl RefUnwindSafe for MainEngine
impl Send for MainEngine
impl Sync for MainEngine
impl Unpin for MainEngine
impl UnsafeUnpin for MainEngine
impl UnwindSafe for MainEngine
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