# Examples
The `examples/` directory contains runnable demonstrations for common CLI situations.
## `basic_bar.rs`
Shows a default bar and a Unicode themed bar.
```text
default [##########>-----------------------------] 25/100 (25%) working
unicode [━━━━━━━━━━╸░░░░░░░░░░░░░░░░░░░░] 25/100 working
```
## `spinner.rs`
Runs the dots, moon, and clock presets with automatic steady ticks and a final success
symbol.
## `multi_progress.rs`
Creates three bars, moves each into a worker thread, and calls `multi.join()` on the main
thread so the terminal block refreshes while work continues.
## `custom_style.rs`
Demonstrates a custom template, `progress_chars("=>-")`, custom spinner frames, and a bold
cyan `ColorSpec`.
## `download_simulation.rs`
Uses byte-aware variables:
```text
download [########>-------------------------------] 12.00 MB/50.00 MB 1.34 MB/s ETA ~28s output.bin
```
## `nested_bars.rs`
Shows an outer batch bar and an inner item bar using `MultiProgress`, with phase messages
printed above the block.
## `eta_and_rate.rs`
Displays `{per_sec:.2}`, `{eta}`, and `{elapsed}` while simulated processing speed changes.
## `themed_bar.rs`
Loops through every theme and renders a short visual gallery.
## `iterator_wrap.rs`
Demonstrates `.progress()`, `.progress_with_style(style)`, `.progress_count(500)`, summing,
and chained iterators.
## `custom_template.rs`
Registers `custom_label` with `with_key` and renders phase labels directly in the template.
## `advanced_customization.rs`
Combines reusable `ProgressChars`, ANSI color, status-aware templates, compact remaining
counts, draw throttling, progress state reads, and `finish_with_symbol`.
## `custom_loader.rs`
Shows custom loading animations using the meter, progress block, and pulse presets plus
spinner status helpers.