std: Rename Writer::write to Writer::write_all

In preparation for upcoming changes to the `Writer` trait (soon to be called
`Write`) this commit renames the current `write` method to `write_all` to match
the semantics of the upcoming `write_all` method. The `write` method will be
repurposed to return a `usize` indicating how much data was written which
differs from the current `write` semantics. In order to head off as much
unintended breakage as possible, the method is being deprecated now in favor of
a new name.

[breaking-change]
This commit is contained in:
Alex Crichton
2015-01-23 10:46:14 -08:00
parent 3a07f859b8
commit 5d836cdf86
41 changed files with 229 additions and 226 deletions

View File

@@ -70,7 +70,7 @@
//! use std::old_io::File;
//!
//! let mut file = File::create(&Path::new("message.txt"));
//! file.write(b"hello, file!\n");
//! file.write_all(b"hello, file!\n");
//! # drop(file);
//! # ::std::old_io::fs::unlink(&Path::new("message.txt"));
//! ```
@@ -110,7 +110,7 @@
//! # // just stop it running (#11576)
//! # if false {
//! let mut socket = TcpStream::connect("127.0.0.1:8080").unwrap();
//! socket.write(b"GET / HTTP/1.0\n\n");
//! socket.write_all(b"GET / HTTP/1.0\n\n");
//! let response = socket.read_to_end();
//! # }
//! ```
@@ -174,7 +174,7 @@
//! to be 'unwrapped' before use.
//!
//! These features combine in the API to allow for expressions like
//! `File::create(&Path::new("diary.txt")).write(b"Met a girl.\n")`
//! `File::create(&Path::new("diary.txt")).write_all(b"Met a girl.\n")`
//! without having to worry about whether "diary.txt" exists or whether
//! the write succeeds. As written, if either `new` or `write_line`
//! encounters an error then the result of the entire expression will
@@ -186,7 +186,7 @@
//! # #![allow(unused_must_use)]
//! use std::old_io::File;
//!
//! match File::create(&Path::new("diary.txt")).write(b"Met a girl.\n") {
//! match File::create(&Path::new("diary.txt")).write_all(b"Met a girl.\n") {
//! Ok(()) => (), // succeeded
//! Err(e) => println!("failed to write to my diary: {}", e),
//! }
@@ -997,7 +997,11 @@ pub trait Writer {
/// `Err`. Note that it is considered an error if the entire buffer could
/// not be written, and if an error is returned then it is unknown how much
/// data (if any) was actually written.
fn write(&mut self, buf: &[u8]) -> IoResult<()>;
fn write_all(&mut self, buf: &[u8]) -> IoResult<()>;
/// Deprecated, this method was renamed to `write_all`
#[deprecated = "renamed to `write_all`"]
fn write(&mut self, buf: &[u8]) -> IoResult<()> { self.write_all(buf) }
/// Flush this output stream, ensuring that all intermediately buffered
/// contents reach their destination.
@@ -1026,7 +1030,7 @@ pub trait Writer {
impl<'a, T: ?Sized + Writer> fmt::Writer for Adaptor<'a, T> {
fn write_str(&mut self, s: &str) -> fmt::Result {
match self.inner.write(s.as_bytes()) {
match self.inner.write_all(s.as_bytes()) {
Ok(()) => Ok(()),
Err(e) => {
self.error = Err(e);
@@ -1052,7 +1056,7 @@ pub trait Writer {
/// converted byte-array instead.
#[inline]
fn write_str(&mut self, s: &str) -> IoResult<()> {
self.write(s.as_bytes())
self.write_all(s.as_bytes())
}
/// Writes a string into this sink, and then writes a literal newline (`\n`)
@@ -1064,7 +1068,7 @@ pub trait Writer {
/// that the `write` method is used specifically instead.
#[inline]
fn write_line(&mut self, s: &str) -> IoResult<()> {
self.write_str(s).and_then(|()| self.write(&[b'\n']))
self.write_str(s).and_then(|()| self.write_all(&[b'\n']))
}
/// Write a single char, encoded as UTF-8.
@@ -1072,7 +1076,7 @@ pub trait Writer {
fn write_char(&mut self, c: char) -> IoResult<()> {
let mut buf = [0u8; 4];
let n = c.encode_utf8(buf.as_mut_slice()).unwrap_or(0);
self.write(&buf[..n])
self.write_all(&buf[..n])
}
/// Write the result of passing n through `int::to_str_bytes`.
@@ -1090,61 +1094,61 @@ pub trait Writer {
/// Write a little-endian uint (number of bytes depends on system).
#[inline]
fn write_le_uint(&mut self, n: uint) -> IoResult<()> {
extensions::u64_to_le_bytes(n as u64, uint::BYTES, |v| self.write(v))
extensions::u64_to_le_bytes(n as u64, uint::BYTES, |v| self.write_all(v))
}
/// Write a little-endian int (number of bytes depends on system).
#[inline]
fn write_le_int(&mut self, n: int) -> IoResult<()> {
extensions::u64_to_le_bytes(n as u64, int::BYTES, |v| self.write(v))
extensions::u64_to_le_bytes(n as u64, int::BYTES, |v| self.write_all(v))
}
/// Write a big-endian uint (number of bytes depends on system).
#[inline]
fn write_be_uint(&mut self, n: uint) -> IoResult<()> {
extensions::u64_to_be_bytes(n as u64, uint::BYTES, |v| self.write(v))
extensions::u64_to_be_bytes(n as u64, uint::BYTES, |v| self.write_all(v))
}
/// Write a big-endian int (number of bytes depends on system).
#[inline]
fn write_be_int(&mut self, n: int) -> IoResult<()> {
extensions::u64_to_be_bytes(n as u64, int::BYTES, |v| self.write(v))
extensions::u64_to_be_bytes(n as u64, int::BYTES, |v| self.write_all(v))
}
/// Write a big-endian u64 (8 bytes).
#[inline]
fn write_be_u64(&mut self, n: u64) -> IoResult<()> {
extensions::u64_to_be_bytes(n, 8u, |v| self.write(v))
extensions::u64_to_be_bytes(n, 8u, |v| self.write_all(v))
}
/// Write a big-endian u32 (4 bytes).
#[inline]
fn write_be_u32(&mut self, n: u32) -> IoResult<()> {
extensions::u64_to_be_bytes(n as u64, 4u, |v| self.write(v))
extensions::u64_to_be_bytes(n as u64, 4u, |v| self.write_all(v))
}
/// Write a big-endian u16 (2 bytes).
#[inline]
fn write_be_u16(&mut self, n: u16) -> IoResult<()> {
extensions::u64_to_be_bytes(n as u64, 2u, |v| self.write(v))
extensions::u64_to_be_bytes(n as u64, 2u, |v| self.write_all(v))
}
/// Write a big-endian i64 (8 bytes).
#[inline]
fn write_be_i64(&mut self, n: i64) -> IoResult<()> {
extensions::u64_to_be_bytes(n as u64, 8u, |v| self.write(v))
extensions::u64_to_be_bytes(n as u64, 8u, |v| self.write_all(v))
}
/// Write a big-endian i32 (4 bytes).
#[inline]
fn write_be_i32(&mut self, n: i32) -> IoResult<()> {
extensions::u64_to_be_bytes(n as u64, 4u, |v| self.write(v))
extensions::u64_to_be_bytes(n as u64, 4u, |v| self.write_all(v))
}
/// Write a big-endian i16 (2 bytes).
#[inline]
fn write_be_i16(&mut self, n: i16) -> IoResult<()> {
extensions::u64_to_be_bytes(n as u64, 2u, |v| self.write(v))
extensions::u64_to_be_bytes(n as u64, 2u, |v| self.write_all(v))
}
/// Write a big-endian IEEE754 double-precision floating-point (8 bytes).
@@ -1166,37 +1170,37 @@ pub trait Writer {
/// Write a little-endian u64 (8 bytes).
#[inline]
fn write_le_u64(&mut self, n: u64) -> IoResult<()> {
extensions::u64_to_le_bytes(n, 8u, |v| self.write(v))
extensions::u64_to_le_bytes(n, 8u, |v| self.write_all(v))
}
/// Write a little-endian u32 (4 bytes).
#[inline]
fn write_le_u32(&mut self, n: u32) -> IoResult<()> {
extensions::u64_to_le_bytes(n as u64, 4u, |v| self.write(v))
extensions::u64_to_le_bytes(n as u64, 4u, |v| self.write_all(v))
}
/// Write a little-endian u16 (2 bytes).
#[inline]
fn write_le_u16(&mut self, n: u16) -> IoResult<()> {
extensions::u64_to_le_bytes(n as u64, 2u, |v| self.write(v))
extensions::u64_to_le_bytes(n as u64, 2u, |v| self.write_all(v))
}
/// Write a little-endian i64 (8 bytes).
#[inline]
fn write_le_i64(&mut self, n: i64) -> IoResult<()> {
extensions::u64_to_le_bytes(n as u64, 8u, |v| self.write(v))
extensions::u64_to_le_bytes(n as u64, 8u, |v| self.write_all(v))
}
/// Write a little-endian i32 (4 bytes).
#[inline]
fn write_le_i32(&mut self, n: i32) -> IoResult<()> {
extensions::u64_to_le_bytes(n as u64, 4u, |v| self.write(v))
extensions::u64_to_le_bytes(n as u64, 4u, |v| self.write_all(v))
}
/// Write a little-endian i16 (2 bytes).
#[inline]
fn write_le_i16(&mut self, n: i16) -> IoResult<()> {
extensions::u64_to_le_bytes(n as u64, 2u, |v| self.write(v))
extensions::u64_to_le_bytes(n as u64, 2u, |v| self.write_all(v))
}
/// Write a little-endian IEEE754 double-precision floating-point
@@ -1220,13 +1224,13 @@ pub trait Writer {
/// Write a u8 (1 byte).
#[inline]
fn write_u8(&mut self, n: u8) -> IoResult<()> {
self.write(&[n])
self.write_all(&[n])
}
/// Write an i8 (1 byte).
#[inline]
fn write_i8(&mut self, n: i8) -> IoResult<()> {
self.write(&[n as u8])
self.write_all(&[n as u8])
}
}
@@ -1248,8 +1252,8 @@ impl<T: Writer> ByRefWriter for T {
impl<'a> Writer for Box<Writer+'a> {
#[inline]
fn write(&mut self, buf: &[u8]) -> IoResult<()> {
(&mut **self).write(buf)
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> {
(&mut **self).write_all(buf)
}
#[inline]
@@ -1260,7 +1264,7 @@ impl<'a> Writer for Box<Writer+'a> {
impl<'a> Writer for &'a mut (Writer+'a) {
#[inline]
fn write(&mut self, buf: &[u8]) -> IoResult<()> { (**self).write(buf) }
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> { (**self).write_all(buf) }
#[inline]
fn flush(&mut self) -> IoResult<()> { (**self).flush() }
@@ -1295,7 +1299,7 @@ pub struct RefWriter<'a, W:'a> {
impl<'a, W: Writer> Writer for RefWriter<'a, W> {
#[inline]
fn write(&mut self, buf: &[u8]) -> IoResult<()> { self.inner.write(buf) }
fn write_all(&mut self, buf: &[u8]) -> IoResult<()> { self.inner.write_all(buf) }
#[inline]
fn flush(&mut self) -> IoResult<()> { self.inner.flush() }