7 个稳定版本
新功能 3.0.0 | 2024 年 8 月 23 日 |
---|---|
2.1.0 | 2022 年 3 月 26 日 |
1.2.0 | 2022 年 3 月 24 日 |
#307 in 命令行界面
379 每月下载量
用于 8 crates
18KB
230 行
🥬 spinach
实用旋转效果,Rust —
v3
现支持方法链式调用
安装
将其添加到您的 Cargo.toml
依赖项中。
[dependencies]
spinach = "3"
用法
基本示例。
use spinach::Spinner;
fn main() {
let s = Spinner::new("Cutting spinaches...").start();
// Cut spinaches
s.text("Cutting tomatoes...").update();
// Cut tomatoes
s.text("Vegetables cut").symbols(vec!["🔪"]).stop();
}
启动
use spinach::{Color, Spinner};
// With custom text
let s = Spinner::new("workin'...").start();
// With custom text, spinner, spinner speed and spinner color
let symbols = vec!["▮","▯"];
let s = Spinner::new("blip... blop...")
.color(Color::Red)
.symbols(symbols)
.frames_duration(80)
.start();
更新
use spinach::{Color, Spinner};
let s = Spinner::new("workin'...").start();
// Updating text
s.text("new text").update();
// Updating color
s.color(Color::White).update();
// Updating spinner symbols
s.symbols(vec!["◐", "◓", "◑", "◒"]).update();
// Updating spinner speed
s.frames_duration(80).update();
// Updating multiple at once
s.text("new text").color(Color::Red);
停止
use spinach::{Color, Spinner};
let s = Spinner::new("workin'...").start();
// Stop with final `✔` frame and green color.
s.text("gg!").success();
// Stop with final `✖` frame and red color.
s.text("ups").failure();
// Stop with final `⚠` frame and yellow color.
s.text("something may have happened?").warn();
// Stop with final `ℹ` frame and blue color.
s.text("notice").stop();
// Stop current spinner (sends update at the same time)
s.stop(); // freeze
s.text("spinach'd").symbols(vec!["🥬"]).stop(); // stop with the text "spinach'd" and a vegetable as the spinner
常见问题解答
如何避免在中断(Ctrl+C)时在终端上留下没有提示的情况?
您可以使用类似 ctrlc
的库来处理中断。
处理它的最基本方法是与这个库的 QoL show_cursor
函数结合使用,如下所示
use spinach::{show_cursor, Spinner};
fn main() {
ctrlc::set_handler(|| {
show_cursor();
std::process::exit(0);
})
.expect("Error setting Ctrl-C handler");
let s = Spinner::new("workin'...").start();
// ...
相关
灵感来自