about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorGarrett Berg <googberg@gmail.com>2017-11-18 16:10:14 -0700
committerGarrett Berg <googberg@gmail.com>2017-11-18 16:45:04 -0700
commit44da4a0656b8f4197e67798fc93bd13b267a5b7a (patch)
treef3f92916c98acc21d85aa8eb73e04667629dde2f /src/libstd
parentb1409af73d133f513980ccbf27c941a28d8d5c50 (diff)
downloadrust-44da4a0656b8f4197e67798fc93bd13b267a5b7a.tar.gz
rust-44da4a0656b8f4197e67798fc93bd13b267a5b7a.zip
Add doc for `Read`ing from `&str` and some related cleanup
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/io/mod.rs34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/libstd/io/mod.rs b/src/libstd/io/mod.rs
index 57f8c39756e..62313d7d3a6 100644
--- a/src/libstd/io/mod.rs
+++ b/src/libstd/io/mod.rs
@@ -419,14 +419,8 @@ fn read_to_end<R: Read + ?Sized>(r: &mut R, buf: &mut Vec<u8>) -> Result<usize>
 ///
 /// [`File`]s implement `Read`:
 ///
-/// [`read()`]: trait.Read.html#tymethod.read
-/// [`std::io`]: ../../std/io/index.html
-/// [`File`]: ../fs/struct.File.html
-/// [`BufRead`]: trait.BufRead.html
-/// [`BufReader`]: struct.BufReader.html
-///
 /// ```
-/// use std::io;
+/// # use std::io;
 /// use std::io::prelude::*;
 /// use std::fs::File;
 ///
@@ -449,6 +443,32 @@ fn read_to_end<R: Read + ?Sized>(r: &mut R, buf: &mut Vec<u8>) -> Result<usize>
 /// # Ok(())
 /// # }
 /// ```
+///
+/// Read from `&str` because [`&[u8]`] implements [`Read`]:
+///
+/// ```
+/// # use std::io;
+/// use std::io::prelude::*;
+///
+/// # fn foo() -> io::Result<()> {
+/// let mut b = "This string will be read".as_bytes();
+/// let mut buffer = [0; 10];
+///
+/// // read up to 10 bytes
+/// b.read(&mut buffer)?;
+///
+/// // etc... it works exactly as a File does!
+/// # Ok(())
+/// # }
+/// ```
+///
+/// [`read()`]: trait.Read.html#tymethod.read
+/// [`std::io`]: ../../std/io/index.html
+/// [`File`]: ../fs/struct.File.html
+/// [`BufRead`]: trait.BufRead.html
+/// [`BufReader`]: struct.BufReader.html
+/// [`&[u8]`]: primitive.slice.html
+///
 #[stable(feature = "rust1", since = "1.0.0")]
 pub trait Read {
     /// Pull some bytes from this source into the specified buffer, returning