aboutsummaryrefslogtreecommitdiff
path: root/vendor/anstyle-wincon/src/ansi.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/anstyle-wincon/src/ansi.rs')
-rw-r--r--vendor/anstyle-wincon/src/ansi.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/vendor/anstyle-wincon/src/ansi.rs b/vendor/anstyle-wincon/src/ansi.rs
new file mode 100644
index 0000000..6ac7193
--- /dev/null
+++ b/vendor/anstyle-wincon/src/ansi.rs
@@ -0,0 +1,25 @@
+//! 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)
+}