| //! Low-level ANSI-styling |
| |
| /// Write ANSI colored text to the stream |
| pub fn write_colored<S: std::io::Write>( |
| stream: &mut S, |
| fg: Option<anstyle::AnsiColor>, |
| bg: Option<anstyle::AnsiColor>, |
| data: &[u8], |
| ) -> std::io::Result<usize> { |
| let non_default = fg.is_some() || bg.is_some(); |
| |
| if non_default { |
| if let Some(fg) = fg { |
| write!(stream, "{}", fg.render_fg())?; |
| } |
| if let Some(bg) = bg { |
| write!(stream, "{}", bg.render_bg())?; |
| } |
| } |
| let written = stream.write(data)?; |
| if non_default { |
| write!(stream, "{}", anstyle::Reset.render())?; |
| } |
| Ok(written) |
| } |