我有一个 Rust 项目,结构如下
├── Cargo.lock
├── Cargo.toml
├── src/
│ ├── main.rs
│ └── framework/
│ ├── pluginchain.rs
│ └── plugins/
│ ├── plugin.rs
框架和插件下都有更多的源文件,但这就是要点。每个目录(框架、插件)都有一个 mod.rs 文件,用于包含每个目录中各种 rust 源文件。因此,从 main.rs 包含框架目录中的源代码,我可以执行以下操作..
mod framework;
use crate::framework::{pluginchain, ...}
并且在框架中使用其他源是没有问题的。在框架中的任何源中声明。
use crate::framework::{...}
现在我遇到的问题是如何使用框架目录中的插件目录中的某些内容。我尝试过各种 mod 插件 .. 使用 crate::plugins::{...} ... 使用 super::plugins::[...} 等...
我对如何做我认为可能非常简单的事情感到困惑。
(您的产品中缺少
main.rs
,但是)可能如下:
mod framework;
mod plugin;
要从
crate::plugin::somewhat
调用 crate::framework
,请将模块可见性更改为 pub(crate)
:
mod framework;
pub(crate) plugin;
这只会更改模块可见性,您还应该更改模块下的成员可见性。