我正在尝试将程序拆分为包含多个具有结构和函数的子模块的库,以及一个使用所有子模块的主文件。我想要一个包含有用功能的子模块,除了其他子模块之外,其他任何地方都不需要这些功能。但是,我很难将此子模块导入另一个子模块。货物项目称为eant_rust。我的lib.rs和main.rs文件位于src目录中。我有一个名为modules的文件夹,lib.rs文件从中导入。在modules文件夹里面是一个mod.rs文件,我遇到了两个子模块。
lib.rs:
pub mod modules;
main.rs:
extern crate eant_rust;
fn main() {}
mod.rs(带有两个子模块的模块文件夹内):
pub mod network;
functions.rs(一个子模块):
pub fn reverse() {}
pub fn sum_vec() {}
network.rs(另一个):
use modules::functions;
functions::reverse();
functions::sum_vec();
当我尝试编译时,我收到以下错误:
错误:未解析的导入modules::functions
。 functions
中没有modules
。
答案 0 :(得分:5)
如果我理解正确你的文件是这样的:
lib -
|- lib.rs
|- main.rs
|- modules -
|- mod.rs
|- functions.rs
|- network.rs
根据您在network.rs
中所写的内容,您应该可以使用modules::functions
,但似乎您没有将其包含在modules / mod.rs中
所以在模块/模块中添加一行mod functions;
。