#用户输入 #控制台 #终端 #CLI 输入 #CLI

console-utils

简单的 CLI 输入和控制实用工具

20 个稳定版本

1.6.0 2024年3月27日
1.5.9 2023年12月10日
1.5.5 2023年11月30日

命令行实用工具 中排名第 491

Download history 54/week @ 2024-07-22

每月下载 54

MIT 许可证

22KB
363 行代码(不包括注释)

Console Utils

crates.io crates.io docs.rs

一个用于基于控制台的用户输入、选项选择、控制等功能的 Rust 库。

概述

此软件包提供 Rust 程序中各种与控制台相关的操作实用函数。从获取用户输入到实现精确的终端控制,其主要重点是保持简单,同时提供广泛的功能。

使用方法

要在您的 Rust 项目中使用 Console Utils,您可以在您的 Cargo.toml 文件中添加以下依赖项

[dependencies]
console-utils = "1.6.0"

添加依赖项后,您可以在 Rust 代码中导入所需的模块。例如

use console_utils::input::{input, select};
use console_utils::control::{flush, clear_line};

示例

读取用户输入

use console_utils::input::input;
// Read user input as a string
let user_input: String = input("Enter something: ");

println!("You entered: {}", user_input);

选择选项

单个选项

use console_utils::input::select;
let options = [
    "Option 1",
    "Option 2",
    "Option 3",
];
// Allow the user to select one option
let selected_index = select("Select an option:", &options);

println!("Selected option: {}", options[selected_index]);

多个选项

use console_utils::input::multiselect;
let options = [
    "Option 1",
    "Option 2",
    "Option 3",
];
// Allow the user to select multiple options
let selected_indices = multiselect("Select options:", &options);

println!("Selected indices: {:?}", selected_indices);

控制台控制

use console_utils::control::{flush, clear_line};
// Flush the output buffer to ensure content is displayed immediately
flush();
// Clear the current line in the console
clear_line();
// and more...
// Consult the docs for more details!

读取按键

use console_utils::read::{read_key};
// Cross-platform key reading
let key = read_key();
println!("Pressed key: {:?}", key);

显示旋转器

use console_utils::input::{spinner, SpinnerType};
// Display a standard spinner for 3 seconds
spinner(3.0, SpinnerType::Standard);
// Display a custom spinner for 2 seconds
spinner(2.0, SpinnerType::Custom(vec!["1", "2", "3", "4", "3", "2"]));

逐渐显示字符串

use console_utils::input::reveal;
// Display "Hello World!" with a time interval of 0.1 seconds between each character
reveal("Hello World!", 0.1);

有关更详细的文档,请参阅 生成的 Rust 文档

依赖关系

~0–7.5MB
~46K SLoC