我想分离应用程序逻辑,以保持main.rs文件干净。我正在使用柴油进行一个简单的项目,并且在/ src文件夹中有以下文件
我试图声明 main.rs 文件中的模块,并在 lib.rs 文件中使用它们,但这会产生以下错误:
未解决的导入
models
;没有models
个外部箱子[E0432]
main.rs 看起来像这样:
pub mod lib;
pub mod schema;
pub mod models;
lib.rs 产生错误:
pub use models;
pub use schema::sent_sms;
我不明白为什么用这种语言会使事情变得如此复杂,或者我太愚蠢而无法理解。 请帮助我理解。
答案 0 :(得分:0)
The main part of this answer was moved to the duplicate question!
因此,您的问题是use models;
相对于当前模块(models
)寻找lib
。但是models
不是lib
的子模块,而是main
的子模块。因此,引用这些顶级模块的正确方法是这样的:
use crate::{
models,
schema::sent_sms,
};
其他说明:
lib
,因为该名称是库箱根目录的默认名称。use
语句的行为在Rust 2018(≥1.31)中发生了变化