core::write - Rust
Description: API documentation for the Rust `write` macro in crate `core`.
Keywords: rust, rustlang, rust-lang, write

# Macro core::write 1.0.0 [−] [src]

    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

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)