如果您有这样的目录结构:
src/main.rs
src/module1/blah.rs
src/module1/blah2.rs
src/utils/logging.rs
Run Code Online (Sandbox Code Playgroud)
你如何使用其他文件中的函数?
从Rust教程,听起来我应该能够做到这一点:
main.rs
mod utils { pub mod logging; }
mod module1 { pub mod blah; }
fn main() {
utils::logging::trace("Logging works");
module1::blah::doit();
}
Run Code Online (Sandbox Code Playgroud)
logging.rs
pub fn trace(msg: &str) {
println!(": {}\n", msg);
}
Run Code Online (Sandbox Code Playgroud)
blah.rs
mod blah2;
pub fn doit() {
blah2::doit();
}
Run Code Online (Sandbox Code Playgroud)
blah2.rs
mod utils { pub mod logging; }
pub fn doit() {
utils::logging::trace("Blah2 invoked");
}
Run Code Online (Sandbox Code Playgroud)
但是,这会产生错误:
error[E0583]: file not found for module `logging`
--> src/main.rs:1:21
|
1 | mod utils { pub …Run Code Online (Sandbox Code Playgroud) rust ×1