Expand description
mount —— 模块挂载表(0.9.34「插件界面 = 一模块一菜单」波)。
规则(用户裁定,2026-11-01):
- 一个模块(
ek_core::Plugin::kind)一个菜单项、一扇窗;菜单项数只随模块数变, 不随实例数变(ctp_278153/ctp_220380共用一个「交易网关」项)。 - 窗内怎么分(表格 / tab / 分栏)由模块自己决定 —— CTP 用一张账户表,dm/oms/tq 用各自
的
ui_face。框架只负责“取到实例、把宿主交进去“。 - 关窗不销毁实例(= Python
self.widgets字典),再点直接复用编辑中的内容。 - 装配名单驱动:没装的不出现;
always = true的模块(交易网关 / 宿主自有窗)恒在。
与已退役的 faces.rs(0.9.10 连根铲)的关系:那条线是“一实例一面“,本模块换成
“一模块一窗”,并把派发收成 Body 枚举 + match(不引 trait、不建新 crate)。
Structs§
- CfgBridge
CfgHost的 ek-ui 实现:写档走cfg.save总线,cfg缺席 = 直写托底 (与plugin.rs::cfg_bus_save同口径,不另造一条写路)。- Group
Info - 一个模块的扫描结果(锁外采集,
Registry::sync_groups只消费它)。 - ModDesc
- 模块描述(静态元数据)。
- Module
Win - 一扇模块窗。
- Registry
- 挂载表。
Enums§
- Body
- 一扇模块窗的体。新增一个插件面 = 加一个变体 + 一个
match分支 (scripts/check_plugin_faces.ps1会比对“有面必有体“)。 - Shape
- 窗内形状(A8)。本期只实现
Shape::Single;PerInstance是留给 “确实需要按实例拆二级菜单“的模块的逃生门(字段就位、行为不实现)。
Constants§
- MODULES
- 已知模块表。顺序无关(渲染按
order)。
Functions§
- engine_
of - 便利:引擎句柄(窗口体里取插件实例用)。
- scan_
groups - 扫引擎里在册插件 → 按
kind归组(不碰挂载表锁;见sync_groups注释)。