1use crate::workshop::Designer;
2
3#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Default)]
4pub enum LogLevel {
5 #[default]
6 Off = 0, Error = 1,
8 Info = 2, Debug = 3, }
11
12impl From<u8> for LogLevel {
13 fn from(level: u8) -> Self {
14 match level {
15 0 => LogLevel::Error,
16 1 => LogLevel::Info,
17 x if x >= 2 => LogLevel::Debug,
18 _ => LogLevel::Debug,
19 }
20 }
21}
22
23impl LogLevel {
24 pub fn info(&self, content: &str, designer: &Designer) {
25 if *self >= Self::Info {
26 eprintln!("{}{}{}", designer.prefix(), &content, designer.suffix());
27 }
28 }
29
30 pub fn debug(&self, content: &str, designer: &Designer) {
31 if *self >= Self::Debug {
32 eprintln!("{}{}{}", designer.prefix(), &content, designer.suffix());
33 }
34 }
35
36 pub fn error(&self, content: &str, designer: &Designer) {
37 if *self >= Self::Error {
38 eprintln!("{}{}{}", designer.prefix(), &content, designer.suffix());
39 }
40 }
41}