Crate anstream

Source
Expand description

Auto-adapting stdout / stderr streams

A portmanteau of “ansi stream”

AutoStream always accepts ANSI escape codes, adapting to the user’s terminal’s capabilities.

Benefits

  • Allows the caller to not be concerned with the terminal’s capabilities
  • Semver safe way of passing styled text between crates as ANSI escape codes offer more compatibility than most crate APIs.

Available styling crates:

  • anstyle for minimal runtime styling, designed to go in public APIs
  • owo-colors for feature-rich runtime styling
  • color-print for feature-rich compile-time styling

§Example

use anstream::println;
use owo_colors::OwoColorize as _;

// Foreground colors
println!("My number is {:#x}!", 10.green());
// Background colors
println!("My number is not {}!", 4.on_red());

And this will correctly handle piping to a file, etc

Re-exports§

pub use buffer::Buffer;Deprecated

Modules§

adapter
Gracefully degrade styled output
stream
Higher-level traits to describe writeable streams

Macros§

eprint
Prints to stderr.
eprintln
Prints to stderr, with a newline.
panic
Panics the current thread.
print
Prints to stdout.
println
Prints to stdout, with a newline.

Structs§

AutoStream
std::io::Write that adapts ANSI escape codes to the underlying Writes capabilities
StripStream
Only pass printable data to the inner Write

Enums§

ColorChoice
Selection for overriding color output Selection for overriding color output

Functions§

stderr
Create an ANSI escape code compatible stderr
stdout
Create an ANSI escape code compatible stdout

Type Aliases§

Stderr
An adaptive wrapper around the global standard error stream of the current process
Stdout
An adaptive wrapper around the global standard output stream of the current process