Expand description
Small terminal utilities shared across the workspace.
§Progress
nils-term provides a minimal, RAII-friendly progress abstraction that is safe for
machine-readable stdout output.
- Progress is drawn to stderr by default.
- With
ProgressEnabled::Auto(default), progress is enabled only when stderr is a TTY.
§Determinate progress
use nils_term::progress::{Progress, ProgressOptions};
let total = 3_u64;
let progress = Progress::new(total, ProgressOptions::default().with_prefix("work "));
for i in 0..total {
progress.set_message(format!("item {i}"));
progress.inc(1);
}
progress.finish();§Spinner progress
use nils_term::progress::{Progress, ProgressFinish, ProgressOptions};
let spinner = Progress::spinner(
ProgressOptions::default()
.with_prefix("fetch ")
.with_finish(ProgressFinish::Clear),
);
spinner.set_message("loading");
spinner.tick();
spinner.finish_and_clear();§Library guidance
Prefer accepting a Progress (or ProgressOptions) from the caller instead of reading env vars
inside library code. This keeps libraries deterministic and lets binaries decide whether to show
progress (e.g. interactive vs CI).