#prompt #dialoguer #macro-derive #interactive #traits #dialog #message

dialoguer_trait

使用 dialoguer 构建交互式消息提示的特质助手(和 derive 宏)

3 个不稳定版本

0.2.0 2021年7月14日
0.1.2 2021年7月14日
0.1.1 2021年7月14日
0.1.0 2020年11月18日

#684配置

30 每月下载次数

自定义许可证

7KB
61

Dialoguer 特质

它是 dialoguer 库的简单包装特质。它的目标是消除构建交互式 CLI 应用程序时提供显式代码的必要性。它附带一个巧妙的 derive 宏,可以将(几乎)任何结构体转换为命令提示配置。

用法

将 dialoguer_trait 添加到您的 Cargo.toml 中

[dependencies]
dialoguer_trait = "0.2.0" 

将特质导入您的命名空间,并将其 derive 应用于某些结构体

use dialoguer_trait::Dialogue;

#[derive(Dialogue)]
struct Config {
    #[dialogue(prompt = "An option")]
    an_option: String,
    #[dialogue(prompt = "Please input a number")]
    number: isize,
    #[dialogue(prompt = "Are you having a good day?")]
    is_day_good: bool,
}

然后您只需组合您的结构体即可

let config = Config::compose("Give me config... please!").unwrap();

用户注意事项

项目几乎处于 WIP 状态。

您必须将 #[dialoguer] 属性添加到结构体中的 每个 字段,并且它们必须设置 prompt
在枚举上 derive Dialogue 要求其变体有 恰好一个未命名的 字段。
某些类型的支持尚不完整(例如 PathBuf、UUID、Uri)。
不提供生成的 CLI 的配置。
API 任何时间都可能更改(我对特质方法名称并不完全确定)。

任何帮助都将受到欢迎。

依赖关系

~3–12MB
~151K SLoC