blob: 4837b1e57d0e981c3ad74efae9dd81c64994052c [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="This trait describes the behavior of writers that support colored output."><meta name="keywords" content="rust, rustlang, rust-lang, WriteColor"><title>WriteColor in termcolor - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../normalize.css"><link rel="stylesheet" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../ayu.css" disabled><link rel="stylesheet" href="../dark.css" disabled><link rel="stylesheet" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../main.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../favicon.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../termcolor/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../termcolor/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">WriteColor</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.reset">reset</a></li><li><a href="#tymethod.set_color">set_color</a></li><li><a href="#tymethod.supports_color">supports_color</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.is_synchronous">is_synchronous</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-WriteColor-for-%26%27a%20mut%20T">&amp;&#39;a mut T</a></li><li><a href="#impl-WriteColor-for-Box%3CT%3E">Box&lt;T&gt;</a></li><li><a href="#impl-WriteColor-for-Sink">Sink</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In termcolor</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="index.html">termcolor</a>::<wbr><a class="trait" href="#">WriteColor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/termcolor/lib.rs.html#132-165">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait WriteColor: <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> {
fn <a href="#tymethod.supports_color" class="fnname">supports_color</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.set_color" class="fnname">set_color</a>(&amp;mut self, spec: &amp;<a class="struct" href="struct.ColorSpec.html" title="struct termcolor::ColorSpec">ColorSpec</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.reset" class="fnname">reset</a>(&amp;mut self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;;
fn <a href="#method.is_synchronous" class="fnname">is_synchronous</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> { ... }
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This trait describes the behavior of writers that support colored output.</p>
</div></details><h2 id="required-methods" class="small-section-header">Required Methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.supports_color" class="method has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#134">source</a><h4 class="code-header">fn <a href="#tymethod.supports_color" class="fnname">supports_color</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns true if and only if the underlying writer supports colors.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.set_color" class="method has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#143">source</a><h4 class="code-header">fn <a href="#tymethod.set_color" class="fnname">set_color</a>(&amp;mut self, spec: &amp;<a class="struct" href="struct.ColorSpec.html" title="struct termcolor::ColorSpec">ColorSpec</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Set the color settings of the writer.</p>
<p>Subsequent writes to this writer will use these settings until either
<code>reset</code> is called or new color settings are set.</p>
<p>If there was a problem setting the color settings, then an error is
returned.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.reset" class="method has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#149">source</a><h4 class="code-header">fn <a href="#tymethod.reset" class="fnname">reset</a>(&amp;mut self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Reset the current color settings to their original settings.</p>
<p>If there was a problem resetting the color settings, then an error is
returned.</p>
</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_synchronous" class="method has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#162-164">source</a><h4 class="code-header">fn <a href="#method.is_synchronous" class="fnname">is_synchronous</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns true if and only if the underlying writer must synchronously
interact with an end user’s device in order to control colors. By
default, this always returns <code>false</code>.</p>
<p>In practice, this should return <code>true</code> if the underlying writer is
manipulating colors using the Windows console APIs.</p>
<p>This is useful for writing generic code (such as a buffered writer)
that can perform certain optimizations when the underlying writer
doesn’t rely on synchronous APIs. For example, ANSI escape sequences
can be passed through to the end user’s device as is.</p>
</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-WriteColor-for-%26%27a%20mut%20T" class="impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#167-180">source</a><a href="#impl-WriteColor-for-%26%27a%20mut%20T" class="anchor"></a><h3 class="code-header">impl&lt;'a, T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a>&gt; <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>T</h3></section></summary><div class="impl-items"><section id="method.supports_color" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#168-170">source</a><a href="#method.supports_color" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.supports_color" class="fnname">supports_color</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section><section id="method.set_color" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#171-173">source</a><a href="#method.set_color" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.set_color" class="fnname">set_color</a>(&amp;mut self, spec: &amp;<a class="struct" href="struct.ColorSpec.html" title="struct termcolor::ColorSpec">ColorSpec</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section><section id="method.reset" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#174-176">source</a><a href="#method.reset" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.reset" class="fnname">reset</a>(&amp;mut self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section><section id="method.is_synchronous-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#177-179">source</a><a href="#method.is_synchronous-1" class="anchor"></a><h4 class="code-header">fn <a href="#method.is_synchronous" class="fnname">is_synchronous</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-WriteColor-for-Box%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#182-195">source</a><a href="#impl-WriteColor-for-Box%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a>&gt; <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><section id="method.supports_color-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#183-185">source</a><a href="#method.supports_color-1" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.supports_color" class="fnname">supports_color</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section><section id="method.set_color-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#186-188">source</a><a href="#method.set_color-1" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.set_color" class="fnname">set_color</a>(&amp;mut self, spec: &amp;<a class="struct" href="struct.ColorSpec.html" title="struct termcolor::ColorSpec">ColorSpec</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section><section id="method.reset-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#189-191">source</a><a href="#method.reset-1" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.reset" class="fnname">reset</a>(&amp;mut self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section><section id="method.is_synchronous-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#192-194">source</a><a href="#method.is_synchronous-2" class="anchor"></a><h4 class="code-header">fn <a href="#method.is_synchronous" class="fnname">is_synchronous</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-WriteColor-for-Sink" class="impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#1520-1532">source</a><a href="#impl-WriteColor-for-Sink" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/util/struct.Sink.html" title="struct std::io::util::Sink">Sink</a></h3></section></summary><div class="impl-items"><section id="method.supports_color-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#1521-1523">source</a><a href="#method.supports_color-2" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.supports_color" class="fnname">supports_color</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section><section id="method.set_color-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#1525-1527">source</a><a href="#method.set_color-2" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.set_color" class="fnname">set_color</a>(&amp;mut self, _: &amp;<a class="struct" href="struct.ColorSpec.html" title="struct termcolor::ColorSpec">ColorSpec</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section><section id="method.reset-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#1529-1531">source</a><a href="#method.reset-2" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.reset" class="fnname">reset</a>(&amp;mut self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div id="implementors-list"><section id="impl-WriteColor-for-Buffer" class="impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#1211-1246">source</a><a href="#impl-WriteColor-for-Buffer" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a> for <a class="struct" href="struct.Buffer.html" title="struct termcolor::Buffer">Buffer</a></h3></section><section id="impl-WriteColor-for-BufferedStandardStream" class="impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#733-756">source</a><a href="#impl-WriteColor-for-BufferedStandardStream" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a> for <a class="struct" href="struct.BufferedStandardStream.html" title="struct termcolor::BufferedStandardStream">BufferedStandardStream</a></h3></section><section id="impl-WriteColor-for-StandardStream" class="impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#665-685">source</a><a href="#impl-WriteColor-for-StandardStream" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a> for <a class="struct" href="struct.StandardStream.html" title="struct termcolor::StandardStream">StandardStream</a></h3></section><section id="impl-WriteColor-for-StandardStreamLock%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#699-719">source</a><a href="#impl-WriteColor-for-StandardStreamLock%3C%27a%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a> for <a class="struct" href="struct.StandardStreamLock.html" title="struct termcolor::StandardStreamLock">StandardStreamLock</a>&lt;'a&gt;</h3></section><section id="impl-WriteColor-for-Ansi%3CW%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#1359-1403">source</a><a href="#impl-WriteColor-for-Ansi%3CW%3E" class="anchor"></a><h3 class="code-header">impl&lt;W:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a>&gt; <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a> for <a class="struct" href="struct.Ansi.html" title="struct termcolor::Ansi">Ansi</a>&lt;W&gt;</h3></section><section id="impl-WriteColor-for-NoColor%3CW%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/termcolor/lib.rs.html#1287-1307">source</a><a href="#impl-WriteColor-for-NoColor%3CW%3E" class="anchor"></a><h3 class="code-header">impl&lt;W:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a>&gt; <a class="trait" href="trait.WriteColor.html" title="trait termcolor::WriteColor">WriteColor</a> for <a class="struct" href="struct.NoColor.html" title="struct termcolor::NoColor">NoColor</a>&lt;W&gt;</h3></section></div><script src="../implementors/termcolor/trait.WriteColor.js" data-ignore-extern-crates="alloc,std" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="termcolor" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>