1 个不稳定版本
0.1.0 | 2023年10月24日 |
---|
#1583 in 文本处理
17KB
275 行
cli-animate
cli-animate
是一个Rust crate,旨在 通过多种美观且易于使用的动画丰富命令行应用程序。它提供了一种简单的方法来集成视觉元素,例如进度条、交互式菜单等,从而增强您的CLI的交互性。
功能
进度条:使用可定制的动画进度条显示任务进度。
交互式菜单:通过直观、可键盘导航的菜单浏览选项。
加载指示器:显示加载指示器以显示您的应用程序正在运行。
样式可定制:使用颜色和字符定制动画的外观。
更多:该库旨在可扩展性,并包括各种其他工具以丰富您的CLI应用程序。
安装
将 cli-animate
添加到您的 Cargo.toml
文件依赖部分
[dependencies]
cli-animate = "0.1.0"
示例
交互式菜单:
use cli_animate::InteractiveMenu;
fn main() {
let options = vec![
"Tokyo".to_string(),
"Saitama".to_string(),
"Kanagawa".to_string(),
];
let mut menu = InteractiveMenu::new(options.clone());
// Run it!
let selected_index = menu.run().unwrap(); // Returns the index of the user's selected option.
println!("You selected: {}", options[selected_index]); // "You selected: Tokyo"
}
进度条:
use cli_animate::{ProgressBar, StyleBuilder, Color};
fn main() {
let progress_value = Arc::new(Mutex::new(0));
// Create a clone of the progress_value for the other thread.
let thread_progress_value = progress_value.clone();
// Some work done in another thread.
let do_some_work = thread::spawn(move || {
let mut num = 0;
while num <= 100 {
thread::sleep(time::Duration::from_millis(20));
let mut val = thread_progress_value.lock().unwrap(); // Update the progress value.
*val = num;
num += 1;
}
});
// Initialize a progress bar.
let style = StyleBuilder::new() // Customize the progress bar's style!
.color(Color::Green)
.bar_length(20)
.build();
let progress_bar = ProgressBar::new(0, 100, move || *progress_value.lock().unwrap(), style);
let mut writer = std::io::stdout();
// Start it!
progress_bar.start(&mut writer);
// Wait for the worker thread to finish.
do_some_work.join().unwrap();
}
在存储库中的 examples/
目录中查看更多 cli-animate 的使用示例。
许可证
本项目受 MIT 许可证许可 - 详细信息请参阅 LICENSE 文件。
感谢您使用 cli-animate
使您的命令行应用程序更具吸引力和互动性!