use crate::StyledObject; use std::fmt::Display; /// Provides a set of methods to color any type implementing `Display` with attributes. /// /// This trait is implemented for `&static str` and `StyledObject` and thus the methods of this trait could be called on them. /// /// ``` rust /// use Colorizer; /// /// let styled_text = "Red forground color on blue background.".red().on_blue(); /// println!("{}", styled_text); /// ``` pub trait Colorize { fn black(self) -> StyledObject; fn dark_grey(self) -> StyledObject; fn red(self) -> StyledObject; fn dark_red(self) -> StyledObject; fn green(self) -> StyledObject; fn dark_green(self) -> StyledObject; fn yellow(self) -> StyledObject; fn dark_yellow(self) -> StyledObject; fn blue(self) -> StyledObject; fn dark_blue(self) -> StyledObject; fn magenta(self) -> StyledObject; fn dark_magenta(self) -> StyledObject; fn cyan(self) -> StyledObject; fn dark_cyan(self) -> StyledObject; fn white(self) -> StyledObject; fn grey(self) -> StyledObject; fn on_black(self) -> StyledObject; fn on_dark_grey(self) -> StyledObject; fn on_red(self) -> StyledObject; fn on_dark_red(self) -> StyledObject; fn on_green(self) -> StyledObject; fn on_dark_green(self) -> StyledObject; fn on_yellow(self) -> StyledObject; fn on_dark_yellow(self) -> StyledObject; fn on_blue(self) -> StyledObject; fn on_dark_blue(self) -> StyledObject; fn on_magenta(self) -> StyledObject; fn on_dark_magenta(self) -> StyledObject; fn on_cyan(self) -> StyledObject; fn on_dark_cyan(self) -> StyledObject; fn on_white(self) -> StyledObject; fn on_grey(self) -> StyledObject; } /// Provides a set of methods to style any type implementing `Display` with attributes. /// /// This trait is implemented for `&static str` and `StyledObject` and thus the methods of this trait could be called on them. /// /// # Example /// ``` rust /// use Colorizer; /// /// println!("{}", "Bold text".bold(); /// println!("{}", "Underlined text".underlined(); /// println!("{}", "Negative text".negative(); /// ``` pub trait Styler { fn reset(self) -> StyledObject; fn bold(self) -> StyledObject; fn underlined(self) -> StyledObject; fn reverse(self) -> StyledObject; fn dim(self) -> StyledObject; fn italic(self) -> StyledObject; fn negative(self) -> StyledObject; fn slow_blink(self) -> StyledObject; fn rapid_blink(self) -> StyledObject; fn hidden(self) -> StyledObject; fn crossed_out(self) -> StyledObject; }