1 个不稳定版本

0.1.0 2023年5月30日

#18 in #input-validation

MIT 许可证

410KB
1.5K SLoC

Rust 的交互式 CLI 提示

创建类似于 GitHub CLI 工具中的交互式输入提示。

presentation

功能

  • 跨平台;
  • 仅有一个依赖项 - crossterm
  • 4 个内置提示
    • 普通输入字段。支持输入验证和默认值;
    • 确认 y/n;
    • 从选项列表中选择;
    • 多选。
  • 自定义提示的颜色和文本样式;
  • 一组特性和辅助结构体,允许您为应用程序实现自定义提示;

入门指南

更多详细示例可以在 示例目录 中找到。

    use cli_prompts::{
        prompts::{Input, AbortReason},
        DisplayPrompt
    }

    fn show_input_prompt() {
      let name : Result<String, AbortReason> = Input::new("Enter your name", name_validation)
          .default_value("John")
          .help_message("Please provide your real name")
          .display();

      match name {
          Ok(n) => println!("The name is {}", n),
          Err(abort_reason) => println!("Input was aborted because of {:?}", abort_reason),
      }
    }

    fn name_validation(name: &str) -> Result<String, String> {
      if name.len() > 0 {
          Ok(name.to_string())
      } else {
          Err("Name must not be empty".into())
      }
    }

许可证

该项目,cli_prompts,根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。

依赖项

~1–12MB
~82K SLoC