首页 > 解决方案 > 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

解决方案


你可以使用一大堆 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 制作一个preludemod 并在其中包含您 crate 的所有主要项目,这样您就可以通过传递来包含它们use crate::prelude::*prelude 您可以在官方 rust 文档此处阅读更多信息。


推荐阅读