write-by-ref

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
This commit is contained in:
Yoshua Wuyts 2019-10-13 02:10:29 +02:00
parent 30b5ca5851
commit f7592963cf
No known key found for this signature in database
GPG key ID: 24EA8164F96777ED

View file

@ -197,6 +197,36 @@ extension_trait! {
{
WriteAllFuture { writer: self, buf }
}
#[doc = r#"
Creates a "by reference" adaptor for this instance of `Write`.
The returned adaptor also implements `Write` and will simply borrow this
current writer.
# Examples
[`File`][file]s implement `Write`:
[file]: ../fs/struct.File.html
```no_run
# fn main() -> std::io::Result<()> { async_std::task::block_on(async {
#
use async_std::prelude::*;
use async_std::fs::File;
let mut buffer = File::create("foo.txt").await?;
let reference = buffer.by_ref();
// we can use reference just like our original buffer
reference.write_all(b"some bytes")?;
#
# Ok(()) }) }
```
"#]
fn by_ref(&mut self) -> &mut Self where Self: Sized { self }
}
impl<T: Write + Unpin + ?Sized> Write for Box<T> {