檔案系統階層
如果您省略模組內容,系統會指示 Rust 在其他檔案中尋找該內容:
mod garden;
這會讓 Rust 知道 garden
模組內容是在 src/garden.rs
中找到的。同樣地,garden::vegetables
模組可在 src/garden/vegetables.rs
中找到。
crate
根層級位於:
src/lib.rs
(適用於程式庫 Crate)src/main.rs
(適用於二進位檔 Crate)
您也可以使用 "inner doc comments" 記錄檔案中定義的模組。這些會記錄包含它們的項目,在本例中就是模組。
//! This module implements the garden, including a highly performant germination //! implementation. // Re-export types from this module. pub use garden::Garden; pub use seeds::SeedPacket; /// Sow the given seed packets. pub fn sow(seeds: Vec<SeedPacket>) { todo!() } /// Harvest the produce in the garden that is ready. pub fn harvest(garden: &mut Garden) { todo!() }
This slide should take about 5 minutes.
-
在 Rust 2018 之前,模組需位於
module/mod.rs
而非module.rs
中,這仍然是 2018 後續版本的可行替代方案。 -
導入
filename.rs
做為filename/mod.rs
的替代方案,主要是因為許多名為mod.rs
的檔案在 IDE 中很難區分。 -
更深層的巢狀結構可以使用資料夾,即使主要模組為檔案也一樣:
src/ ├── main.rs ├── top_module.rs └── top_module/ └── sub_module.rs
-
Rust 尋找模組的位置可透過編譯器指令變更:
#[path = "some/path.rs"] mod some_module;
舉例來說,如果您想將模組的測試放在名為
some_module_test.rs
的檔案中 (類似 Go 中的慣例),這就會很實用。