lib 和mod 的关系梳理

lib.rs 的作用

lib.rs 是 Rust 库 crate 的根文件,它定义了整个库的公共接口。当其他代码(包括 examples)想要使用你的库时,它们实际上是在引用 lib.rs 中公开的内容。

mod 的作用

mod 是 Rust 的模块系统,用于组织代码结构。它可以:

  • 将代码分割成逻辑单元
  • 控制可见性(public/private)
  • 创建命名空间

它们的关系

// src/lib.rs - 库的根文件,对外的"门面"
pub mod menu;        // 声明 menu 模块存在
pub use menu::MenuPlugin;  // 重新导出,让外部直接使用

// src/menu/mod.rs - 具体的模块实现
pub struct MenuPlugin;   // 在模块内部定义

工作流程

  1. 内部组织: mod 帮你把代码按功能分成不同文件/文件夹
  2. 对外暴露: lib.rs 决定哪些模块和类型可以被外部使用
  3. 外部使用: examples 或其他 crate 通过 use your_crate_name:: 来引用

类比理解

想象一个图书馆:

  • lib.rs 就像图书馆的前台目录,告诉你有哪些书可以借
  • mod 就像不同的书架分区(文学区、科技区等)
  • pub use 就像把热门书籍放到前台展示区,方便读者直接找到

这就是为什么在 examples 中,你需要通过 use your_crate_name::MenuPlugin 来引用,而不是直接 mod menu,因为 examples 是作为外部用户在使用你的库。

posted @ 2025-07-02 16:39  Furau  阅读(49)  评论(0)    收藏  举报