Crates.io | multi-spinner |
lib.rs | multi-spinner |
version | 0.1.0 |
source | src |
created_at | 2024-01-23 14:27:55.278708 |
updated_at | 2024-01-23 14:27:55.278708 |
description | A simple multi-threaded spinner for the terminal |
homepage | |
repository | https://github.com/rtc11/multi-spinner/ |
max_upload_size | |
id | 1110871 |
size | 11,307 |
A simple terminal spinner library that uses a shared stdout.
Smack this into your toml
[dependencies]
multi-spinner = "0.1.0"
Throw this on your code
use std::{thread, time::Duration};
use multi_spinner::{Spinner, spinners::Animation};
fn main() {
let mut spinner = Spinner::builder()
.msg("awesome".into())
.start();
thread::sleep(Duration::from_secs(3));
spinner.stop().expect("");
}
If you need full control over stdout, you can create a mutexed arc
let stdout = Arc::new(Mutex::new(stdout()));
let mut spinner = Spinner::builder()
.stdout(stdout)
.msg("splendid".into())
.start();
You can if you want to, change the awesome spinner
let mut spinner = Spinner::builder()
.spinner(Animation::Bars10(0))
.build();
spinner.start() // <-- in case you need to await the start