use colored::*;
use std::sync::atomic::{AtomicBool, Ordering};
static JSON_MODE: AtomicBool = AtomicBool::new(false);
pub fn set_json_mode(enabled: bool) {
JSON_MODE.store(enabled, Ordering::SeqCst);
}
pub fn is_json_mode() -> bool {
JSON_MODE.load(Ordering::SeqCst)
}
pub fn print_success(message: &str) {
if is_json_mode() {
println!(
"{}",
serde_json::json!({"status": "success", "message": message})
);
} else {
println!("{} {}", "✓".green(), message);
}
}
pub fn print_error(message: &str) {
if is_json_mode() {
eprintln!(
"{}",
serde_json::json!({"status": "error", "message": message})
);
} else {
eprintln!("{} {}", "✗".red(), message);
}
}
pub fn print_info(message: &str) {
if is_json_mode() {
println!(
"{}",
serde_json::json!({"status": "info", "message": message})
);
} else {
println!("{} {}", "ℹ".blue(), message);
}
}
pub fn print_warning(message: &str) {
if is_json_mode() {
println!(
"{}",
serde_json::json!({"status": "warning", "message": message})
);
} else {
println!("{} {}", "⚠".yellow(), message);
}
}