相关疑难解决方法(0)

你如何在Rust中使用父模块导入?

如果您有这样的目录结构:

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

36
推荐指数
3
解决办法
2万
查看次数

标签 统计

rust ×1