Macro anstream::println

source ·
macro_rules! println {
    () => { ... };
    ($($arg:tt)*) => { ... };
}
Available on crate feature auto only.
Expand description

Prints to stdout, with a newline.

On all platforms, the newline is the LINE FEED character (\n/U+000A) alone (no additional CARRIAGE RETURN (\r/U+000D)).

This macro uses the same syntax as format!, but writes to the standard output instead. See std::fmt for more information.

NOTE: The println! macro will lock the standard output on each call. If you call println! within a hot loop, this behavior may be the bottleneck of the loop. To avoid this, lock stdout with AutoStream::lock:

use std::io::Write as _;

let mut lock = anstream::stdout().lock();
writeln!(lock, "hello world").unwrap();

Use println! only for the primary output of your program. Use eprintln! instead to print error and progress messages.

Panics

Panics if writing to stdout fails for any reason except broken pipe.

Writing to non-blocking stdout can cause an error, which will lead this macro to panic.

Examples

use anstream::println;

println!(); // prints just a newline
println!("hello there!");
println!("format {} arguments", "some");
let local_variable = "some";
println!("format {local_variable} arguments");