Macro std::write [−]
macro_rules! write { ( $ dst : expr , $ ( $ arg : tt ) * ) => { ... }; }
Write formatted data into a buffer.
This macro accepts a format string, a list of arguments, and a 'writer'. Arguments will be
formatted according to the specified format string and the result will be passed to the writer.
The writer may be any value with a write_fmt
method; generally this comes from an
implementation of either the std::fmt::Write
or the std::io::Write
trait. The macro
returns whatever the write_fmt
method returns; commonly a std::fmt::Result
, or an
io::Result
.
See std::fmt
for more information on the format string syntax.
Examples
use std::io::Write; let mut w = Vec::new(); write!(&mut w, "test").unwrap(); write!(&mut w, "formatted {}", "arguments").unwrap(); assert_eq!(w, b"testformatted arguments");Run
A module can import both std::fmt::Write
and std::io::Write
and call write!
on objects
implementing either, as objects do not typically implement both. However, the module must
import the traits qualified so their names do not conflict:
use std::fmt::Write as FmtWrite; use std::io::Write as IoWrite; let mut s = String::new(); let mut v = Vec::new(); write!(&mut s, "{} {}", "abc", 123).unwrap(); // uses fmt::Write::write_fmt write!(&mut v, "s = {:?}", s).unwrap(); // uses io::Write::write_fmt assert_eq!(v, b"s = \"abc 123\"");Run