leg

🔈 Elegant print for lazy devs

Demo

Workflow status Latest version

Make your CLIs nicer with minimal effort. Simple wrapper on top of: - [async-std](https://github.com/async-rs/async-std) printing macros. - Prints to `stderr` to be nice with your pipes. Except the `result` function, as expected. - [colored](https://crates.io/crates/colored) crate: - Works on Linux, MacOS, and Windows (Powershell). - Respects [CLICOLOR/CLICOLOR_FORCE](http://bixense.com/clicolors) and [NO_COLOR](https://no-color.org) behavior. **Do not use this crate in libraries! You should use the [log](https://github.com/rust-lang-nursery/log) one instead.** Visit [this section](https://rust-cli.github.io/book/tutorial/output.html) of the book [Command line apps in Rust](https://rust-cli.github.io/book) if you want to learn more about this topic. ## Install With [cargo-edit](https://github.com/killercup/cargo-edit) installed run: ```sh cargo add leg ``` ## Use 📝 Please visit [tests](tests/lib.rs) and [full documentation](https://docs.rs/leg) if you want to learn the details. ```rust use leg::*; use async_std::{eprint, eprintln}; #[async_std::main] async fn main() { head("leg", Some("🔈"), Some("1.0.0")).await; info("Informational message", None, None).await; success("Successful operation", None, None).await; warn("Warn message", None, None).await; error("Error message", None, None).await; wait("Waiting for something", None, None).await; done("Something finished", None, None).await; info("Informational message with scope", Some("myscope"), None).await; info("Informational message without new line", None, Some(false)).await; eprintln!(" => same line").await; eprint!("Not shown").await; remove().await; result("To standard output").await; } ```