about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSteve Klabnik <steve@steveklabnik.com>2015-08-27 14:24:53 -0400
committerSteve Klabnik <steve@steveklabnik.com>2015-10-09 13:53:25 -0400
commitef9e542b453023a0cb6cd0855f5d1214f0024a88 (patch)
tree4c41cdeed798f7180943701b0f65fdaab868a50f
parentc14609035d1780d4a8a3ca7b4fdf93046299ab4a (diff)
downloadrust-ef9e542b453023a0cb6cd0855f5d1214f0024a88.tar.gz
rust-ef9e542b453023a0cb6cd0855f5d1214f0024a88.zip
Improve docs for write!/writeln! macros
-rw-r--r--src/libcore/macros.rs34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/libcore/macros.rs b/src/libcore/macros.rs
index 25ca33a3d50..58e0bb37b0a 100644
--- a/src/libcore/macros.rs
+++ b/src/libcore/macros.rs
@@ -168,8 +168,14 @@ macro_rules! try {
     })
 }
 
-/// Use the `format!` syntax to write data into a buffer of type `&mut Write`.
-/// See `std::fmt` for more information.
+/// Use the `format!` syntax to write data into a buffer.
+///
+/// This macro is typically used with a buffer of `&mut `[`Write`][write].
+///
+/// See [`std::fmt`][fmt] for more information on format syntax.
+///
+/// [fmt]: fmt/index.html
+/// [write]: io/trait.Write.html
 ///
 /// # Examples
 ///
@@ -179,14 +185,34 @@ macro_rules! try {
 /// let mut w = Vec::new();
 /// write!(&mut w, "test").unwrap();
 /// write!(&mut w, "formatted {}", "arguments").unwrap();
+///
+/// assert_eq!(w, b"testformatted arguments");
 /// ```
 #[macro_export]
 macro_rules! write {
     ($dst:expr, $($arg:tt)*) => ($dst.write_fmt(format_args!($($arg)*)))
 }
 
-/// Equivalent to the `write!` macro, except that a newline is appended after
-/// the message is written.
+/// Use the `format!` syntax to write data into a buffer, appending a newline.
+///
+/// This macro is typically used with a buffer of `&mut `[`Write`][write].
+///
+/// See [`std::fmt`][fmt] for more information on format syntax.
+///
+/// [fmt]: fmt/index.html
+/// [write]: io/trait.Write.html
+///
+/// # Examples
+///
+/// ```
+/// use std::io::Write;
+///
+/// let mut w = Vec::new();
+/// writeln!(&mut w, "test").unwrap();
+/// writeln!(&mut w, "formatted {}", "arguments").unwrap();
+///
+/// assert_eq!(&w[..], "test\nformatted arguments\n".as_bytes());
+/// ```
 #[macro_export]
 #[stable(feature = "rust1", since = "1.0.0")]
 macro_rules! writeln {