use colored::Colorize;
use std::io::Write;
pub fn info(msg: &str) {
println!(" {} {}", "▸".cyan(), msg);
}
pub fn ok(msg: &str) {
println!(" {} {}", "✔".green(), msg);
}
pub fn warn(msg: &str) {
println!(" {} {}", "⊘".yellow(), msg);
}
pub fn err(msg: &str) {
eprintln!(" {} {}", "✘".red(), msg);
}
pub fn section(title: &str) {
println!("\n{} {}", "►".cyan().bold(), title.bold());
}
pub fn separator_n(n: usize) {
println!(" {}", "─".repeat(n).cyan());
}
pub fn confirm(prompt: &str) -> bool {
print!(" {prompt} ");
std::io::stdout().flush().ok();
let mut line = String::new();
match std::io::stdin().read_line(&mut line) {
Ok(_) => matches!(line.trim().to_lowercase().as_str(), "y"),
Err(_) => {
warn("Cannot read user input (non-interactive mode?) — treating as 'No'.");
false
}
}
}