niuhuan / rust_proc_qq

[RUST] 模块化QQ机器人框架 (Based RICQ)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

module添加方式

Ns2Kracy opened this issue · comments

能否为Module添加一种父子模块的注册方式
比如一个父模块如下

lazy_static! {
    static ref MODULES: Arc<Vec<Module>> = Arc::new(vec![]);
}

pub fn all_module() -> Arc<Vec<Module>> {
    MODULES.clone()
}

在modules的目录下有一个子目录的模块

lazy_static! {
    static ref OSU_MODULES: Arc<Vec<Module>> = Arc::new(vec![]);
}

pub fn osu_module() -> Arc<Vec<Module>> {
    OSU_MODULES.clone()
}

能否添加一种方法(比如迭代器)将子模块与父模块进行合并, 比如

pub fn all_module() -> Arc<Vec<Module>> {
    let mut modules = MODULES.clone();
    modules.extend(osu::osu_module().clone().into_iter());
    modules
}

Template只是一个demo,您可以复制template作为独立的仓库,然后修改一下依赖版本。

您可以自行实现递归操作。

用 Mut vec 应该可以

OK, 感谢回答!