@@ -849,6 +849,7 @@ pub trait Reader {
849
849
}
850
850
851
851
/// A reader which can be converted to a RefReader.
852
+ #[ deprecated = "use ByRefReader instead" ]
852
853
pub trait AsRefReader {
853
854
/// Creates a wrapper around a mutable reference to the reader.
854
855
///
@@ -857,12 +858,28 @@ pub trait AsRefReader {
857
858
fn by_ref < ' a > ( & ' a mut self ) -> RefReader < ' a , Self > ;
858
859
}
859
860
861
+ #[ allow( deprecated) ]
860
862
impl < T : Reader > AsRefReader for T {
861
863
fn by_ref < ' a > ( & ' a mut self ) -> RefReader < ' a , T > {
862
864
RefReader { inner : self }
863
865
}
864
866
}
865
867
868
+ /// A reader which can be converted to a RefReader.
869
+ pub trait ByRefReader {
870
+ /// Creates a wrapper around a mutable reference to the reader.
871
+ ///
872
+ /// This is useful to allow applying adaptors while still
873
+ /// retaining ownership of the original value.
874
+ fn by_ref < ' a > ( & ' a mut self ) -> RefReader < ' a , Self > ;
875
+ }
876
+
877
+ impl < T : Reader > ByRefReader for T {
878
+ fn by_ref < ' a > ( & ' a mut self ) -> RefReader < ' a , T > {
879
+ RefReader { inner : self }
880
+ }
881
+ }
882
+
866
883
/// A reader which can be converted to bytes.
867
884
pub trait BytesReader {
868
885
/// Create an iterator that reads a single byte on
@@ -925,7 +942,7 @@ unsafe fn slice_vec_capacity<'a, T>(v: &'a mut Vec<T>, start: uint, end: uint) -
925
942
/// # fn process_input<R: Reader>(r: R) {}
926
943
/// # fn foo() {
927
944
/// use std::io;
928
- /// use std::io::AsRefReader ;
945
+ /// use std::io::ByRefReader ;
929
946
/// use std::io::util::LimitReader;
930
947
///
931
948
/// let mut stream = io::stdin();
@@ -1211,6 +1228,7 @@ pub trait Writer {
1211
1228
}
1212
1229
1213
1230
/// A writer which can be converted to a RefWriter.
1231
+ #[ deprecated = "use ByRefWriter instead" ]
1214
1232
pub trait AsRefWriter {
1215
1233
/// Creates a wrapper around a mutable reference to the writer.
1216
1234
///
@@ -1220,12 +1238,29 @@ pub trait AsRefWriter {
1220
1238
fn by_ref < ' a > ( & ' a mut self ) -> RefWriter < ' a , Self > ;
1221
1239
}
1222
1240
1241
+ #[ allow( deprecated) ]
1223
1242
impl < T : Writer > AsRefWriter for T {
1224
1243
fn by_ref < ' a > ( & ' a mut self ) -> RefWriter < ' a , T > {
1225
1244
RefWriter { inner : self }
1226
1245
}
1227
1246
}
1228
1247
1248
+ /// A writer which can be converted to a RefWriter.
1249
+ pub trait ByRefWriter {
1250
+ /// Creates a wrapper around a mutable reference to the writer.
1251
+ ///
1252
+ /// This is useful to allow applying wrappers while still
1253
+ /// retaining ownership of the original value.
1254
+ #[ inline]
1255
+ fn by_ref < ' a > ( & ' a mut self ) -> RefWriter < ' a , Self > ;
1256
+ }
1257
+
1258
+ impl < T : Writer > ByRefWriter for T {
1259
+ fn by_ref < ' a > ( & ' a mut self ) -> RefWriter < ' a , T > {
1260
+ RefWriter { inner : self }
1261
+ }
1262
+ }
1263
+
1229
1264
impl < ' a > Writer for Box < Writer +' a > {
1230
1265
#[ inline]
1231
1266
fn write ( & mut self , buf : & [ u8 ] ) -> IoResult < ( ) > {
@@ -1256,7 +1291,7 @@ impl<'a> Writer for &'a mut Writer+'a {
1256
1291
/// # fn process_input<R: Reader>(r: R) {}
1257
1292
/// # fn foo () {
1258
1293
/// use std::io::util::TeeReader;
1259
- /// use std::io::{stdin, MemWriter, AsRefWriter };
1294
+ /// use std::io::{stdin, MemWriter, ByRefWriter };
1260
1295
///
1261
1296
/// let mut output = MemWriter::new();
1262
1297
///
0 commit comments