use std::fmt::Display; pub struct Logger { name: String, } impl Logger { pub fn new(name: T) -> Self { Logger { name: name.to_string(), } } pub fn info(&self, message: T) { println!("\x1b[32mINFO\x1b[0m ({}) › {}", self.name, message); } pub fn warn(&self, message: T) { println!("\x1b[33mWARN\x1b[0m ({}) › {}", self.name, message); } pub fn error(&self, message: T) { println!("\x1b[31mERROR\x1b[0m ({}) › {}", self.name, message); } }