1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
// Copyright 2018-2020 Sebastian Wiesner <sebastian@swsnr.de>
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
//! Standard ANSI styling.
use ansi_term::Style;
use std::io::{Result, Write};
/// Access to a terminal’s basic ANSI styling functionality.
#[derive(PartialEq, Debug, Clone, Copy)]
pub struct AnsiStyle;
impl AnsiStyle {
/// Write styled text to the given writer.
pub fn write_styled<W: Write, V: AsRef<str>>(
self,
write: &mut W,
style: &Style,
text: V,
) -> Result<()> {
write!(write, "{}", style.paint(text.as_ref()))
}
}