#![deny(unsafe_code, missing_docs)] /*! Prodash is a dashboard for displaying the progress of concurrent application. It consists of two parts * a `Tree` to gather progress information and messages * a terminal user interface which displays this information, along with optional free-form information provided by the application itself Even though the `Tree` is not async, it's meant to be transparent and non-blocking performance wise, and benchmarks seem to indicate this is indeed the case. The **terminal user interface** seems to be the least transparent part, but can be configured to refresh less frequently. # Terminal User Interface By default, a TUI is provided to visualize all state. Have a look at [the example provided in the tui module](./tui/index.html). **Please note** that it is behind the `render-tui` feature toggle, which is enabled by default. # Logging If the feature `progress-tree-log` is enabled (default), most calls to `progress` will also be logged. That way, even without a terminal user interface, there will be progress messages. Please note that logging to stdout should not be performed with this feature enabled and a terminal user interface is shown, as this will seriously interfere with the TUI. # A demo application Please have a look at the [dashboard demo](https://github.com/Byron/crates-io-cli-rs/blob/master/prodash/examples/dashboard.rs). [![asciicast](https://asciinema.org/a/301838.svg)](https://asciinema.org/a/301838) Run it with `cargo run --example dashboard` and see what else it can do by checking out `cargo run --example dashboard -- --help`. */ #[cfg(feature = "atty")] pub use atty; #[cfg(feature = "progress-tree")] /// pub mod tree; /// pub mod render; #[cfg(feature = "progress-tree-log")] pub use log::info; #[cfg(feature = "progress-tree-log")] pub use log::warn; #[cfg(any(feature = "humantime", feature = "time"))] /// pub mod time; /// pub mod unit; #[doc(inline)] pub use unit::Unit; /// pub mod messages; /// pub mod progress; mod traits; pub use traits::{Progress, Root, WeakRoot}; mod throughput; pub use crate::throughput::Throughput; #[cfg(not(feature = "progress-tree-log"))] mod log { /// Stub #[macro_export(local_inner_macros)] macro_rules! warn { (target: $target:expr, $($arg:tt)+) => {}; ($($arg:tt)+) => {}; } /// Stub #[macro_export(local_inner_macros)] macro_rules! info { (target: $target:expr, $($arg:tt)+) => {}; ($($arg:tt)+) => {}; } }