我想指定一个通用特征Engine并提供两种不同的实现:Random和Dummy。我想使用以下文件结构:
src-
|-engine
|-mod.rs //contains Engine trait code
|-random.rs // contains first engine implementation
|-dummy.rs // contains second engine implementation
Run Code Online (Sandbox Code Playgroud)
我在lib.rs中有这样的内容:
pub mod engine {
// random moves engine
pub mod random;
pub mod dummy;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试use engine::Engine在其他模块中的任何位置添加内容时,找不到它:
pub mod engine {
// random moves engine
pub mod random;
pub mod dummy;
}
Run Code Online (Sandbox Code Playgroud)
当您在mod项目中写花括号时,这会告诉编译器模块的内容在这些花括号内,而不是在外部文件中。因此,编译器甚至不会查看engine/mod.rs。当您编写分号时,编译器将查找外部文件。
您需要做的是将这些行放在engine/mod.rs:
pub mod random;
pub mod dummy;
Run Code Online (Sandbox Code Playgroud)
然后在中输入lib.rs:
pub mod engine;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1103 次 |
| 最近记录: |