rust - Rust 中的 mod.rs 和嵌套模块

标签 rust

我想指定一个通用特征 Engine 并提供两种不同的实现:RandomDummy。我想使用以下文件结构:

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/

相关文章:

rust - 如何发布测试版的 crate 以进行有限的公开测试?

rust - 如何创建 stub 函数?

rust - 在字符串切片数组中查找字符串切片

rust - 如何在Rust中为终端设置动画

multithreading - 为什么 bool 值需要是原子的?

generics - 是否可以在Rust中编写通用整数长度函数?

casting - 如何使用 rust-xcb 获取给定窗口 ID 的 X 窗口类?

javascript - 如何使用一种主要途径创建多个HTML页面?

linux - 我如何使用 Cargo 构建目标文件?

rust - 我如何告诉编译器不要评估参数?