#cargo-subcommand #module #generate #sub #time #command #nested

app cargo-mod

一个用于在项目中生成模块的 cargo 子命令。减少编写样板代码所花费的时间。

6 个版本

使用旧的 Rust 2015

0.1.5 2017年4月28日
0.1.4 2016年6月13日

#449Cargo 插件

每月 25 次下载

Apache-2.0

10KB
192

cargo-mod

一个用于生成模块的 cargo 子命令。


Build Status Apache 2.0 License Crates.io Crates.io


安装

您可以使用以下一行命令通过 cargo 安装 cargo-mod:

cargo install cargo-mod

为什么

在编写 Rust 代码时,我非常厌倦手动创建模块,当我想要生成多个嵌套模块时,这变得尤其繁琐。我经常忘记在 mod.rs 或我的 lib.rs 等文件中添加导出。作为一名 DevOps 工程师,每当我看到手动、无聊且容易出错的事情时,我都忍不住想要自动化它。因此,cargo-mod 应运而生。

贡献

我很乐意接受您希望添加的任何功能的 pull request,我个人希望添加的一些功能包括

- #5 Generators to remove boilerplate
  - I.e. I would like to generate Diesel.rs models, and nickel.rs / iron.rs routers/middleware etc.
- #4 More intelligent addition of modstrings to mod.rs/lib.rs/main.rs
- #3 Refactoring so unit testing is easier and code makes more sense.
- #2 Improve integration tests so they are more thorough (i.e. check all parts of the generation.)

如果您不确定您的功能是否合适,请在开始工作之前先提交一个 Github issue,询问一下意见!

一如既往地遵守 Rust 行为准则,这不仅是一种很好的行为,也是我个人对 Rust 感到兴奋的原因之一。

如果您添加的内容没有被现有的集成测试覆盖,请务必为它编写一个测试。

请将所有 pull request 提交给 develop 分支。

从源代码构建

就像任何 Rust 项目一样,您可以使用以下命令构建:cargo build,然而我已经包含了一个 make 文件,它为执行某些命令提供了一些便利。特别是当运行测试时,您应该始终使用 make test,因为它将清理并重新生成用于集成测试的 cargo 项目。

用法

Create a new module or modules in the current cargo project.

Usage:
  cargo mod [<options>] [<path>]
  cargo mod -h | --help

Options:
  -h, --help        Print this message
  -p, --private     Make the generated module/s private

Details:
The path is a path seperated by / (even if on windows for now.) and will generate all folder modules
in between the final module and beginning module. The starting point being the current working directory.

Example:
If you are in the root of your project and you run

cargo mod this/is/a/module

We will generate 3 folder modules

this
is
a

and 1 file module

module.rs

With a final directory structure of:

my_crate/
 - Cargo.toml
 - src/
    - lib.rs
    - this/
      - mod.rs
      - is/
        - mod.rs
        - a/
          - mod.rs
          - module.rs

We will also automatically add the correct mod exports to the generated mod.rs files AND to lib.rs/main.rs
whichever exists with a preference for lib.rs if both exist

However if you are inside the src/ directory we will start generation from your current directory in the repo.

If you want to only generate one module you can denote whether it is a folder or file module by the addition or omission
of a trailing /

Example folder:
cargo mod new/

Example file:
cargo mod new

依赖项

~445KB