use colored::{ColoredString, Colorize};
pub fn icon_ok() -> ColoredString {
"●".green()
}
pub fn icon_info() -> ColoredString {
"●".cyan()
}
pub fn icon_warn() -> ColoredString {
"●".yellow()
}
pub fn icon_mode() -> ColoredString {
"●".magenta()
}
pub fn icon_neutral() -> ColoredString {
"●".dimmed()
}
pub fn icon_done() -> ColoredString {
"✓".green()
}
pub fn icon_fail() -> ColoredString {
"✗".red().bold()
}
pub fn icon_alert() -> ColoredString {
"!".yellow().bold()
}
pub fn icon_bullet() -> ColoredString {
"·".dimmed()
}
pub fn prefix_error() -> ColoredString {
"error:".red().bold()
}
pub fn prefix_warning() -> ColoredString {
"warning:".yellow().bold()
}
pub fn prefix_note() -> ColoredString {
"note:".dimmed()
}
pub fn prefix_cause() -> ColoredString {
"caused by:".dimmed()
}
pub fn prefix_hint() -> ColoredString {
"hint:".dimmed()
}
pub const SPINNER_STYLE: &str = "cyan";
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn icons_contain_expected_chars() {
assert!(icon_ok().to_string().contains('●'));
assert!(icon_info().to_string().contains('●'));
assert!(icon_warn().to_string().contains('●'));
assert!(icon_mode().to_string().contains('●'));
assert!(icon_neutral().to_string().contains('●'));
assert!(icon_done().to_string().contains('✓'));
assert!(icon_fail().to_string().contains('✗'));
assert!(icon_alert().to_string().contains('!'));
assert!(icon_bullet().to_string().contains('·'));
}
#[test]
fn prefixes_contain_expected_text() {
assert!(prefix_error().to_string().contains("error:"));
assert!(prefix_warning().to_string().contains("warning:"));
assert!(prefix_note().to_string().contains("note:"));
assert!(prefix_cause().to_string().contains("caused by:"));
assert!(prefix_hint().to_string().contains("hint:"));
}
}