spinoff

simple library for displaying spinners in the terminal

Version Downloads Docs License Actions

🔨 Install

Add as a dependency to your Cargo.toml:

toml [dependencies] spinoff = "0.5.1"

âš¡ Usage

```rust use spinoff::{Spinner, Spinners, Color}; use std::thread::sleep; use std::time::Duration;

let spinner = Spinner::new(Spinners::Dots, "Loading...", Color::Blue); sleep(Duration::from_secs(3)); spinner.success("Done!"); ```

Update a spinner

```rust use spinoff::{Spinner, Spinners, Color}; use std::thread::sleep; use std::time::Duration;

let mut spinner = Spinner::new(Spinners::Aesthetic, "Loading...", Color::Red); sleep(Duration::fromsecs(3)); spinner.update(Spinners::Dots2, "Retrying...", None); sleep(Duration::fromsecs(3)); spinner.updatetext("Not quite done..."); sleep(Duration::fromsecs(1)); spinner.stop() ```

Stop a spinner and persist a symbol and message

```rust use spinoff::{Spinner, Spinners, Color}; use std::thread::sleep; use std::time::Duration;

let spinner = Spinner::new(Spinners::Arc, "Loading...", Color::Green); sleep(Duration::fromsecs(3)); spinner.stopand_persist("📜", "Task done."); ```

Specify an output stream

```rust use spinoff::{Spinner, Spinners, Color, Streams}; use std::thread::sleep; use std::time::Duration;

let spinner = Spinner::newwithstream(Spinners::Line, "Loading...", Color::Yellow, Streams::Stderr); sleep(Duration::fromsecs(3)); spinner.stopand_persist("📜", "Task done."); ```

Other examples can be found in the documentation.

📖 Documentation

âš™ Examples

To run some of the included examples, use: bash cargo run --example all_spinners

bash cargo run --example simple

🚧 Contributing

Any contributions to this crate are highly appreciated. If you have any ideas/suggestions/bug fixes, please open an issue or a pull request. If you like the project, star this project on GitHub.

📑 License

This crate is licensed under the MIT license.