< 返回版块

Pikachu 发表于 2021-11-21 12:29

最近在看各种库和教程的时候发现一个共同的风格,就是把panic handler、global logger以及一些辅助函数放在一个单独的lib crate里,然后在bin中use这些lib。体现了这种风格的repo包括:

  1. rtic/defmt-app-template
  2. rust-embedded/discovery

但是我实际测试了一下,发现用mod来组织这些handler也是能正常运行的。所以我很好奇,lib和mod这两种风格是否有优劣之分?

评论区

写评论
Grobycn 2021-11-21 16:55

拆成小的crate有助于加快编译速度

苦瓜小仔 2021-11-21 13:09

对一个 bin crate 来说没有区别。

如果你能拆出 lib ,说明这个 lib 可以是通用的:

  • 比如同一个项目(workspace、package)的多个 bins/examples/tests/benches crates 都可以共用这个 lib;
  • 或者你想让这个 lib 被其他人使用。

我觉得这是 Rust 组织代码的一个优点。

1 共 2 条评论, 1 页