Files
codewhale/crates/tui/src/ui.rs
T
Hunter Bown 7b91169017 refactor: move source files into workspace crates
- Move src/* into crates/tui/src/ to create a proper workspace structure
- Add .claude/ and .trimtab/ directories for Trimtab closed-loop workflow
- Add DEPENDENCY_GRAPH.md and update documentation
- Update Cargo.toml files to reflect new crate dependencies
- Update CI workflows and npm package scripts
- All tests pass, release build works
2026-03-11 20:00:38 -05:00

31 lines
974 B
Rust

//! Terminal UI helpers (progress bars, spinners).
use indicatif::{ProgressBar, ProgressStyle};
/// Create a spinner progress indicator.
#[must_use]
#[allow(dead_code)]
pub fn spinner(message: &str) -> ProgressBar {
let spinner = ProgressBar::new_spinner();
spinner.set_message(message.to_string());
spinner.set_style(
ProgressStyle::with_template("{spinner} {msg}")
.unwrap_or_else(|_| ProgressStyle::default_spinner()),
);
spinner.enable_steady_tick(std::time::Duration::from_millis(120));
spinner
}
/// Create a progress bar for byte-based transfers.
#[must_use]
#[allow(dead_code)]
pub fn progress_bar(total: u64, message: &str) -> ProgressBar {
let bar = ProgressBar::new(total);
bar.set_message(message.to_string());
bar.set_style(
ProgressStyle::with_template("{msg} [{bar:40.cyan/blue}] {bytes}/{total_bytes} ({eta})")
.unwrap_or_else(|_| ProgressStyle::default_bar()),
);
bar
}