我想指定一个通用特征 Engine
并提供两种不同的实现:Random
和 Dummy
。我想使用以下文件结构:
src-
|-engine
|-mod.rs //contains Engine trait code
|-random.rs // contains first engine implementation
|-dummy.rs // contains second engine implementation
我在 lib.rs 中有这样的东西:
pub mod engine {
// random moves engine
pub mod random;
pub mod dummy;
}
当我尝试在我的其他模块中的任何地方添加 use engine::Engine
时,找不到它:
error[E0432]: unresolved import `engine::Engine`
最佳答案
当您在 mod
项中编写大括号时,这会告诉编译器模块的内容在这些大括号内,而不是在外部文件中。因此,编译器甚至不会查看 engine/mod.rs
。当您改写分号时,编译器将查找外部文件。
您需要做的是将这些行放在 engine/mod.rs
中:
pub mod random;
pub mod dummy;
在lib.rs
中,写:
pub mod engine;
关于rust - Rust 中的 mod.rs 和嵌套模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43824893/