Rust 什么是包装、板条箱和模块?

Rust 什么是包装、板条箱和模块?,rust,rust-cargo,Rust,Rust Cargo,我已经读过了,但我仍然不太理解层次结构。我知道什么是板条箱,包装中至少应有一个板条箱:最多1个图书馆板条箱和0个或更多二进制板条箱 首先:假设我想在包中同时使用lib.rs和main.rs板条箱。如何从main.rs中的lib.rs访问/调用函数 第二:当我用cargo new--lib lib library name创建新库时,它会用该名称创建目录并在那里创建一堆文件,我在src/main.rs中找到的从该库调用函数的唯一方法是: modsome\u库; 使用板条箱::库名称::库名称::f

我已经读过了,但我仍然不太理解层次结构。我知道什么是板条箱,包装中至少应有一个板条箱:最多1个图书馆板条箱和0个或更多二进制板条箱

首先:假设我想在包中同时使用
lib.rs
main.rs
板条箱。如何从
main.rs
中的
lib.rs
访问/调用函数

第二:当我用
cargo new--lib lib library name
创建新库时,它会用该名称创建目录并在那里创建一堆文件,我在
src/main.rs
中找到的从该库调用函数的唯一方法是:

modsome\u库;
使用板条箱::库名称::库名称::foo;
fn main(){
foo();
}
//文件名:src/library\u name.rs
发布模块库_name;//我真的不明白
//文件名:src/library\u name/library\u name.rs
pub fn foo(){
// ... 
}
其中我具有以下层次结构:

 - package_name
   - src
     - library_name
       - src
         - lib.rs
       - Cargo.toml
       - library_name.rs

     - library_name.rs
     - main.rs

   - Cargo.toml

src/library\u name.rs
是否需要与
src/library\u name
库同名?我真的很困惑。

在最简单的情况下,模块是一个单独的
.rs
文件。但是,如果需要嵌套模块,可以创建一个目录,然后添加一个
mod.rs
文件,将该目录声明为模块。您可以使用
use…
从同一目录的模块调用代码。您可以使用
use super::…
从上层目录调用代码。您可以使用
use outermodule::innermodule::…
从另一个模块的模块调用代码,但只有当
outermodule
innermodule
声明为公共时,它才会起作用(这是通过
mod.rs中的
pub mod innermodule;
完成的,如果您不想弄乱文件,只有这样您才能使用
mod module1{…}mod module2{…}在单个文件中定义多个模块。)
。调用模块的逻辑适用于所有相同的情况,最简单的情况是模块是一个单独的
.rs
文件。但是如果需要嵌套模块,可以创建一个目录,并添加一个
mod.rs
文件,将目录声明为模块。可以使用
use…
从同一目录的模块调用代码。您可以使用
use super::…
从上层目录调用代码。您可以使用
use outermodule::innermodule::…
从另一个模块的模块调用代码,但只有当
outermodule
innermodule
声明为公共时,它才会起作用(这是通过
mod.rs中的
pub mod innermodule;
完成的,如果您不想弄乱文件,只有这样您才能使用
mod module1{…}mod module2{…}
在一个文件中定义多个模块。调用模块的逻辑同样适用