1#![allow(dead_code)]
2
3use anstyle::*;
4
5pub const NOP: Style = Style::new();
6pub const HEADER: Style = AnsiColor::Green.on_default().effects(Effects::BOLD);
7pub const USAGE: Style = AnsiColor::Green.on_default().effects(Effects::BOLD);
8pub const LITERAL: Style = AnsiColor::Cyan.on_default().effects(Effects::BOLD);
9pub const PLACEHOLDER: Style = AnsiColor::Cyan.on_default();
10pub const ERROR: Style = AnsiColor::Red.on_default().effects(Effects::BOLD);
11pub const WARN: Style = AnsiColor::Yellow.on_default().effects(Effects::BOLD);
12pub const NOTE: Style = AnsiColor::Cyan.on_default().effects(Effects::BOLD);
13pub const GOOD: Style = AnsiColor::Green.on_default().effects(Effects::BOLD);
14pub const VALID: Style = AnsiColor::Cyan.on_default().effects(Effects::BOLD);
15pub const INVALID: Style = AnsiColor::Yellow.on_default().effects(Effects::BOLD);
16
17pub fn status(status: &str, message: &str) {
18 print(status, message, &HEADER, true);
19}
20
21pub fn warn(status: &str, message: &str) {
22 print(status, message, &WARN, true);
23}
24
25pub fn print(status: &str, message: &str, style: &Style, justified: bool) {
26 let style = style.render();
27 let bold = (Style::new() | Effects::BOLD).render();
28 let reset = Reset.render();
29
30 if justified {
31 eprint!("{style}{status:>12}{reset}");
32 } else {
33 eprint!("{style}{status}{reset}{bold}:{reset}");
34 }
35 eprintln!(" {message}")
36}