edlang/anstream/index.html
2024-07-26 09:44:36 +00:00

27 lines
9.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="Auto-adapting `stdout` / `stderr` streams"><title>anstream - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="anstream" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0 (051478957 2024-07-21)" data-channel="1.80.0" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="../crates.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod crate"><!--[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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../anstream/index.html">anstream</a><span class="version">0.6.15</span></h2></div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section><ul class="block"><li><a href="#reexports">Re-exports</a></li><li><a href="#modules">Modules</a></li><li><a href="#macros">Macros</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Aliases</a></li></ul></section></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <a class="mod" href="#">anstream</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/anstream/lib.rs.html#1-85">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p><strong>Auto-adapting <a href="fn.stdout.html" title="fn anstream::stdout"><code>stdout</code></a> / <a href="fn.stderr.html" title="fn anstream::stderr"><code>stderr</code></a> streams</strong></p>
<p><em>A portmanteau of “ansi stream”</em></p>
<p><a href="struct.AutoStream.html" title="struct anstream::AutoStream"><code>AutoStream</code></a> always accepts <a href="https://en.wikipedia.org/wiki/ANSI_escape_code">ANSI escape codes</a>,
<a href="struct.AutoStream.html" title="struct anstream::AutoStream">adapting to the users terminals capabilities</a>.</p>
<p>Benefits</p>
<ul>
<li>Allows the caller to not be concerned with the terminals capabilities</li>
<li>Semver safe way of passing styled text between crates as ANSI escape codes offer more
compatibility than most crate APIs.</li>
</ul>
<p>Available styling crates:</p>
<ul>
<li><a href="https://docs.rs/anstyle">anstyle</a> for minimal runtime styling, designed to go in public APIs</li>
<li><a href="https://docs.rs/owo-colors">owo-colors</a> for feature-rich runtime styling</li>
<li><a href="https://docs.rs/color-print">color-print</a> for feature-rich compile-time styling</li>
</ul>
<h2 id="example"><a class="doc-anchor" href="#example">§</a>Example</h2>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anstream::println;
<span class="kw">use </span>owo_colors::OwoColorize <span class="kw">as _</span>;
<span class="comment">// Foreground colors
</span><span class="macro">println!</span>(<span class="string">"My number is {:#x}!"</span>, <span class="number">10</span>.green());
<span class="comment">// Background colors
</span><span class="macro">println!</span>(<span class="string">"My number is not {}!"</span>, <span class="number">4</span>.on_red());</code></pre></div>
<p>And this will correctly handle piping to a file, etc</p>
</div></details><h2 id="reexports" class="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name" id="reexport.Buffer"><code>pub use buffer::Buffer;</code></div><div class="desc docblock-short"><span class="stab deprecated" title="">Deprecated</span></div></li></ul><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="mod" href="adapter/index.html" title="mod anstream::adapter">adapter</a></div><div class="desc docblock-short">Gracefully degrade styled output</div></li><li><div class="item-name"><a class="mod" href="stream/index.html" title="mod anstream::stream">stream</a></div><div class="desc docblock-short">Higher-level traits to describe writeable streams</div></li></ul><h2 id="macros" class="section-header">Macros<a href="#macros" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="macro" href="macro.eprint.html" title="macro anstream::eprint">eprint</a></div><div class="desc docblock-short">Prints to <a href="fn.stderr.html" title="fn anstream::stderr"><code>stderr</code></a>.</div></li><li><div class="item-name"><a class="macro" href="macro.eprintln.html" title="macro anstream::eprintln">eprintln</a></div><div class="desc docblock-short">Prints to <a href="fn.stderr.html" title="fn anstream::stderr"><code>stderr</code></a>, with a newline.</div></li><li><div class="item-name"><a class="macro" href="macro.panic.html" title="macro anstream::panic">panic</a></div><div class="desc docblock-short">Panics the current thread.</div></li><li><div class="item-name"><a class="macro" href="macro.print.html" title="macro anstream::print">print</a></div><div class="desc docblock-short">Prints to <a href="fn.stdout.html" title="fn anstream::stdout"><code>stdout</code></a>.</div></li><li><div class="item-name"><a class="macro" href="macro.println.html" title="macro anstream::println">println</a></div><div class="desc docblock-short">Prints to <a href="fn.stdout.html" title="fn anstream::stdout"><code>stdout</code></a>, with a newline.</div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.AutoStream.html" title="struct anstream::AutoStream">AutoStream</a></div><div class="desc docblock-short"><a href="https://doc.rust-lang.org/1.80.0/std/io/trait.Write.html" title="trait std::io::Write"><code>std::io::Write</code></a> that adapts ANSI escape codes to the underlying <code>Write</code>s capabilities</div></li><li><div class="item-name"><a class="struct" href="struct.StripStream.html" title="struct anstream::StripStream">StripStream</a></div><div class="desc docblock-short">Only pass printable data to the inner <code>Write</code></div></li></ul><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="enum" href="enum.ColorChoice.html" title="enum anstream::ColorChoice">ColorChoice</a></div><div class="desc docblock-short">Selection for overriding color output
Selection for overriding color output</div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.stderr.html" title="fn anstream::stderr">stderr</a></div><div class="desc docblock-short">Create an ANSI escape code compatible stderr</div></li><li><div class="item-name"><a class="fn" href="fn.stdout.html" title="fn anstream::stdout">stdout</a></div><div class="desc docblock-short">Create an ANSI escape code compatible stdout</div></li></ul><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="type" href="type.Stderr.html" title="type anstream::Stderr">Stderr</a></div><div class="desc docblock-short">An adaptive wrapper around the global standard error stream of the current process</div></li><li><div class="item-name"><a class="type" href="type.Stdout.html" title="type anstream::Stdout">Stdout</a></div><div class="desc docblock-short">An adaptive wrapper around the global standard output stream of the current process</div></li></ul></section></div></main></body></html>