pub unsafe fn dispatch_command(
plugin: &dyn PackageManager,
project_root: PmpxStr,
matched: *const PmpxStr,
matched_len: usize,
verb: u32,
args: *const PmpxStr,
args_len: usize,
out: *mut PmpxCommand,
) -> u32Expand description
一次 command 调用的全部接线:读输入 → 调 crate::PackageManager::command → 写输出。
这段逻辑住在这个 crate 里,而不是在 export! 宏里,是为了它能被直接测试 ——
宏里生成的代码只能通过真的加载一个 cdylib 来覆盖。
§Safety
见 PmpxPluginV1::command 的 Safety 段。此外 plugin 必须是本进程里有效的实例。