1use super::{Ui, theme::styled_line};
2use console::Style;
3use std::fmt::Display;
4use std::io::Write;
5
6impl<W: Write> Ui<W> {
7 pub fn write_line(&mut self, message: impl Display) {
8 let _ = writeln!(self.out, "{message}");
9 let _ = self.out.flush();
10 }
11
12 pub fn info(&mut self, message: impl Display) {
13 let _ = writeln!(self.err, "{message}");
14 }
15
16 pub fn notice(&mut self, message: impl Display) {
19 let _ = writeln!(self.err, "{message}");
20 }
21
22 pub fn warn(&mut self, message: impl AsRef<str>) {
23 let line = styled_line(
24 self.color_enabled,
25 "⚠",
26 message.as_ref(),
27 Style::new().yellow(),
28 );
29 let _ = writeln!(self.err, "{line}");
30 }
31
32 pub fn error(&mut self, message: impl AsRef<str>) {
33 let line = styled_line(
34 self.color_enabled,
35 "✘",
36 message.as_ref(),
37 Style::new().red(),
38 );
39 let _ = writeln!(self.err, "{line}");
40 }
41
42 pub fn success(&mut self, message: impl AsRef<str>) {
43 let line = styled_line(
44 self.color_enabled,
45 "✓",
46 message.as_ref(),
47 Style::new().green(),
48 );
49 let _ = writeln!(self.err, "{line}");
50 }
51}