diff options
| author | kennytm <kennytm@gmail.com> | 2017-11-21 03:14:42 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-11-21 03:14:42 +0800 |
| commit | 3b1cf4d3c78185c3b00f952983a9066b42ca17aa (patch) | |
| tree | 079a8f2cc0fc754a11e9dbc70838b11b57afc180 /src/libstd | |
| parent | 2c16502b929194cd2389c790ca6aec129b5205ad (diff) | |
| parent | 44da4a0656b8f4197e67798fc93bd13b267a5b7a (diff) | |
| download | rust-3b1cf4d3c78185c3b00f952983a9066b42ca17aa.tar.gz rust-3b1cf4d3c78185c3b00f952983a9066b42ca17aa.zip | |
Rollup merge of #46088 - vitiral:read_doc, r=steveklabnik
add doc for doing `Read` from `&str` This information can be found on [stackoverflow](https://stackoverflow.com/questions/32674905/pass-string-to-function-taking-read-trait) but I think it would be beneficial if it was documented in the `Read` trait itself. I had an *extremely* hard time finding this information, and "mocking" a reader with a string is an EXTREMELY common thing (I believe).
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/io/mod.rs | 34 |
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 |
