我想指定一个通用特征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`
答案 0 :(得分:2)
当您在mod
项中编写大括号时,它告诉编译器模块的内容在这些大括号内,而不在外部文件中。因此,编译器甚至不会查看engine/mod.rs
。当您编写分号时,编译器将查找外部文件。
您需要做的是将这些行放在engine/mod.rs
:
pub mod random;
pub mod dummy;
在lib.rs
中,写一下:
pub mod engine;