Termprogress - Terminal progress bars

Simple and customiseable terminal progress bars for Rust.

Features

How it looks

The bar at 50, 75, and 100%:

shell

The spinner in 4 stages:

shell Some title / Some title - Some title \ Some title |

Getting started.

To quickly use the default bar and spinner, you can include the prelude:

``` rust use termprogress::prelude::*;

let mut progress = Bar::default(); // Create a new progress bar

progress.settitle("Work is being done..."); /// *does work* progress.setprogress(0.25); progress.setprogress(0.5); progress.println("Something happened"); progress.setprogress(0.75); progress.println("Almost done..."); progress.set_progress(1.0);

/// completes progress.complete(); ```

Spinner:

``` rust use termprogress::prelude::*;

let mut spinner = Spin::default(); //Create a new spinner /// does work spinner.bump(); spinner.bump(); progress.println("Something happened"); spinner.bump(); spinner.bump();

/// completes progress.complete_with("Done!"); ```

Traits

The library comes with traits for progress bars: ProgressBar, and Spinner.

The default implementations for these are Bar and Spin, but you can provide your own implementations too for more customisability

``` rust pub fn doeswork(bar: &mut P) { //does work... bar.setprogress(0.5); //more work... bar.set_progress(1.0); }

doeswork(&mut Bar::default()); doeswork(&mut MyBar::new()); ```

License

GPL'd with love <3