degen-logger 0.2.0

Decent console logging for rust
Documentation




use colored::*;



pub enum LogColor {
    Blue,
    Green,
    Red,
    Black,
    White,
    Purple,
    Yellow,
    Custom {r:u8,g:u8,b:u8}
    
}

impl LogColor {
    
   fn get_message_of_color(&self, input_message:String) -> ColoredString {
       
       
       match self {
           
           
           Self::Blue => input_message.blue(),
           Self::Green => input_message.green(),
           Self::Red => input_message.red(),
           Self::Black => input_message.black(),
           Self::White => input_message.white(),
           Self::Purple => input_message.purple(),
           Self::Yellow => input_message.yellow(),  
           Self::Custom {r,g,b} => input_message.truecolor(r.clone(), g.clone(), b.clone())  
           
           
       }
       
   } 
    
    
}


pub trait DegenLogStyle {
    
    fn get_log_color( &self ) -> LogColor ;
    
    fn bold( &self ) -> bool; 
    
    fn show(  &self ) -> bool;
    
    
}

pub fn log<T:DegenLogStyle>( message:String , style: T   ) {
    
    
    let log_color = style.get_log_color();
    
    if style.show() {
        match style.bold() {        
            true =>  println!( "{}" , log_color.get_message_of_color(message).bold()) ,
            false =>  println!( "{}" , log_color.get_message_of_color(message) )              
        
        }
    }
    
  
}



pub fn log_str<T:DegenLogStyle>( message:&str , style: T   ) {
    
    
    let log_color = style.get_log_color();
    
    if style.show() {
        match style.bold() {        
            true =>  println!( "{}" , log_color.get_message_of_color(message.into()).bold()) ,
            false =>  println!( "{}" , log_color.get_message_of_color(message.into()) )              
        
        }
    }
    
  
}