transition

LED notifications made easy

CI status badge Crates.io version Code coverage License

About | Demo | Installation | License | Contribution

Built with 🦀

About

This library allows you control the state of code execution using blink(1) LED notifier.

You simply wrap the code you want to track with transition library: ```rust use std::error::Error; use std::thread; use std::time::Duration; use transition::Transition;

fn main() -> Result<(), Box> { // start transition let notification = Transition::default().start()?;

// our example code
thread::sleep(Duration::from_secs(5));

// task finished with success
notification.notify_success()?;

Ok(())

} ```

What does it do?

  1. After calling start(), blink(1) starts blinking with blue light. This is done in a separate thread.
  2. Then our code is executing.
  3. At the end we call notification.notify_success() (or notification.notify_failure()) which changes the color of LED to green (or red).

Supported colors: ```rust use transition::Led;

let color = Led::Blue; match color { Led::Red => println!("red"), Led::Green => println!("green"), Led::Blue => println!("blue"), Led::Yellow => println!("yellow"), Led::Orange => println!("orange"), Led::Pink => println!("pink"), Led::Cyan => println!("cyan"), Led::White => println!("white"), Led::Blank => println!("turn off the led"), }

```

See examples for more

Demo

Demo GIF

Installation

Add as a dependency to your Cargo.toml: toml [dependencies] transition = "0.1.1"

One of the dependency requires libusb-1.0 to be installed. On Linux you can install it by running: bash sudo apt install libusb-1.0

Make sure that you have correct access rights to access blink(1) device. See udev rules here.

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.