rust - Rust - 在另一个目录中包含 rust 模块
问题描述
这是我的目录结构
src/
├── lib.rs
├── pages/
│ ├── mod.rs
│ ├── home_page.rs
└── components/
├── mod.rs
└── header.rs
在我的内部pages/home_page.rs
,我尝试访问我pub struct Header
的内部components/header.rs
。
我的components/mod.rs
样子是这样的:pub mod header;
它工作得很好,因为在里面lib.rs
- 我可以像这样使用它:
mod components;
use components::header::Header;
但是,我不知道如何在pages/homepage.rs
. 如何访问该结构?Cargo.toml 中有什么东西吗?
解决方案
你可以使用一大堆 Rust 关键字在 crate 的模块之间导航:
super::components::Header
// `super` is like a `parent` of your current mod
crate::components::Header
// `crate` is like a root of you current crate
并包含当前 mod 的子模块:
self::submodule1::MyStruct
// `self` is like current module
您可以在此处阅读更多相关信息
此外,最好为您的 crate 制作一个prelude
mod 并在其中包含您 crate 的所有主要项目,这样您就可以通过传递来包含它们use crate::prelude::*
。prelude
您可以在官方 rust 文档和此处阅读更多信息。
推荐阅读
- javascript - Amcharts Force-directed-network:如何阻止所有子节点一起渲染
- android - 如何在可缩放和可拖动的图像上绘制多个图钉并避免在缩放和拖动时冻结?
- python - 使用 map() 函数输入整数列表的绝对值
- javascript - 在 ReactJS 中为 RadioButtons 启用 Tab 按下或辅助功能
- python - 在 Plotly Indicator python 中显示相对和绝对差异
- ios - AdMob for iOS 缺少框架错误
- ios - iOS 应用程序仅在“在设备上测试”时接收来自 Firebase 的推送通知
- php - php - 如何生成 MySQL INSERT 语句以使用数组中的多行填充表
- javascript - 未捕获的 TypeError:self.showLocalNotificationWrap 不是函数
- javascript - 如何从 chrome 扩展绕过 chrome 默认密码管理器?