Skip to main content

embed_src/
ui.rs

1use crossterm::style::Stylize;
2use std::io::{self, Write};
3
4/// Print a cyan bold header with a 40-char dim rule beneath it.
5#[allow(dead_code)]
6pub fn header(text: &str) {
7    let mut err = io::stderr().lock();
8    let rule = "─".repeat(40);
9    let _ = writeln!(err, "  {}", text.cyan().bold());
10    let _ = writeln!(err, "  {}", rule.dim());
11}
12
13/// Print a green bold checkmark with a message.
14pub fn phase_ok(text: &str) {
15    let mut err = io::stderr().lock();
16    let _ = writeln!(err, "  {} {}", "✓".green().bold(), text);
17}
18
19/// Print a yellow bold warning.
20pub fn warn(text: &str) {
21    let mut err = io::stderr().lock();
22    let _ = writeln!(err, "  {} {}", "⚠".yellow().bold(), text.yellow());
23}
24
25/// Print a cyan info marker with dim text.
26pub fn info(text: &str) {
27    let mut err = io::stderr().lock();
28    let _ = writeln!(err, "  {} {}", "ℹ".cyan(), text.dim());
29}
30
31/// Print a red bold error.
32pub fn error(text: &str) {
33    let mut err = io::stderr().lock();
34    let _ = writeln!(err, "  {} {}", "✗".red().bold(), text.red());
35}