< 返回版块

hongshaohu 发表于 2021-07-31 17:55

Tags:Path,路径

我在src/main.rs中定义了一个pub trait Messenger。 然后在src/lib.rs中的tests模块中写了一个单元测试。 当我在tests模块中用super::Messenger或crate::Messenger引入Messenger时,编译无法通过。 错误提示为:no Messenger in the root

请问,我应该怎样在lib.rs中引入Messenger这个trait?

评论区

写评论
作者 hongshaohu 2021-07-31 18:16

--
👇
苦瓜小仔: 把 pub trait 放到 lib.rs,在 main.rs 中使用 use crate名::trait名 引入。 lib.rs 的功能就是提供公有 API ,而 main.rs 只负责生成二进制文件。

当然,单元测试在 lib.rs 和 main.rs 中都可以出现。

首先多谢!!目前使我困惑的不是怎么绕过这个问题。我是想,为何导致编译错误。

苦瓜小仔 2021-07-31 18:13

把 pub trait 放到 lib.rs,在 main.rs 中使用 use crate名::trait名 引入。 lib.rs 的功能就是提供公有 API ,而 main.rs 只负责生成二进制文件。

当然,单元测试在 lib.rs 和 main.rs 中都可以出现。

1 共 2 条评论, 1 页