From 63da18b269128c6594b0fa60064b187a9b5d0418 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Wed, 10 Jun 2015 21:41:34 +0200 Subject: [PATCH] Have std::fmt::Formatter implement std::fmt::Write. --- src/libcore/fmt/mod.rs | 22 +++++++++++++++------- src/test/run-pass/ifmt.rs | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs index 34d635ca4ab..da4d24bdc7b 100644 --- a/src/libcore/fmt/mod.rs +++ b/src/libcore/fmt/mod.rs @@ -731,13 +731,6 @@ pub fn write_str(&mut self, data: &str) -> Result { self.buf.write_str(data) } - /// Writes a `char` to the underlying buffer contained within this - /// formatter. - #[stable(feature = "fmt_write_char", since = "1.1.0")] - pub fn write_char(&mut self, c: char) -> Result { - self.buf.write_char(c) - } - /// Writes some formatted information into this instance #[stable(feature = "rust1", since = "1.0.0")] pub fn write_fmt(&mut self, fmt: Arguments) -> Result { @@ -899,6 +892,21 @@ pub fn debug_map<'b>(&'b mut self) -> DebugMap<'b, 'a> { } } +#[stable(since = "1.2.0", feature = "formatter_write")] +impl<'a> Write for Formatter<'a> { + fn write_str(&mut self, s: &str) -> Result { + self.buf.write_str(s) + } + + fn write_char(&mut self, c: char) -> Result { + self.buf.write_char(c) + } + + fn write_fmt(&mut self, args: Arguments) -> Result { + write(self.buf, args) + } +} + #[stable(feature = "rust1", since = "1.0.0")] impl Display for Error { fn fmt(&self, f: &mut Formatter) -> Result { diff --git a/src/test/run-pass/ifmt.rs b/src/test/run-pass/ifmt.rs index abd1a953113..c8adb6ccc0a 100644 --- a/src/test/run-pass/ifmt.rs +++ b/src/test/run-pass/ifmt.rs @@ -15,7 +15,7 @@ #![allow(unknown_features)] #![feature(box_syntax)] -use std::fmt; +use std::fmt::{self, Write}; use std::usize; struct A; -- GitLab