) {
// 布尔标志
program.global_flag(["-v", "--verbose"], |program| {
program.stdout_setting.verbose = true;
});
// 带值的参数
program.global_argument("--name", |_program, value| {
// value 就是 "Alice"
let _ = value;
});
}
```
> [!TIP]
> `global_flag` 和 `global_argument` 会自动从 `program.args` 中移除已匹配的参数,这些参数不会进入管线。
## 内置 Setup
Mingling 提供了一些开箱即用的 Setup,覆盖了 CLI 程序最常见的需求:
| Setup | 功能 |
| --------------------------- | --------------------------------------------------------------------- |
| `BasicProgramSetup` | 解析 `--help`/`-h`、`--quiet`/`-q`、`--confirm`/`-C` |
| `DirectoryEnvironmentSetup` | 注册目录资源:当前目录、可执行目录、Home 目录、临时目录 |
| `ExitCodeSetup` | 通过 `ResExitCode` 控制程序退出码 |
| `StructuralRendererSetup` | 启用 `--json`、`--yaml` 等结构化输出(需 `structural_renderer` 特性) |
用法就是在 `main` 里加一行:
```rust
@@@use mingling::setup::BasicProgramSetup;
fn main() {
let mut program = ThisProgram::new();
program.with_setup(BasicProgramSetup);
program.exec_and_exit();
}
```
`BasicProgramSetup` 帮你处理了绝大多数 CLI 程序都需要的通用参数,省去自己手动解析的麻烦。
Written by @Weicao-CatilGrass