@@ -148,14 +148,14 @@ impl<R: Reader> Reader for BufferedReader<R> {
148
148
/// writer.write_str("hello, world").unwrap();
149
149
/// writer.flush().unwrap();
150
150
/// ```
151
- pub struct BufferedWriter < W > {
151
+ pub struct BufferedWriter < W : Writer > {
152
152
inner : Option < W > ,
153
153
buf : Vec < u8 > ,
154
154
pos : uint
155
155
}
156
156
157
157
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
158
- impl < W > fmt:: Debug for BufferedWriter < W > where W : fmt:: Debug {
158
+ impl < W : Writer > fmt:: Debug for BufferedWriter < W > where W : fmt:: Debug {
159
159
fn fmt ( & self , fmt : & mut fmt:: Formatter ) -> fmt:: Result {
160
160
write ! ( fmt, "BufferedWriter {{ writer: {:?}, buffer: {}/{} }}" ,
161
161
self . inner. as_ref( ) . unwrap( ) , self . pos, self . buf. len( ) )
@@ -250,12 +250,12 @@ impl<W: Writer> Drop for BufferedWriter<W> {
250
250
/// `'\n'`) is detected.
251
251
///
252
252
/// This writer will be flushed when it is dropped.
253
- pub struct LineBufferedWriter < W > {
253
+ pub struct LineBufferedWriter < W : Writer > {
254
254
inner : BufferedWriter < W > ,
255
255
}
256
256
257
257
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
258
- impl < W > fmt:: Debug for LineBufferedWriter < W > where W : fmt:: Debug {
258
+ impl < W : Writer > fmt:: Debug for LineBufferedWriter < W > where W : fmt:: Debug {
259
259
fn fmt ( & self , fmt : & mut fmt:: Formatter ) -> fmt:: Result {
260
260
write ! ( fmt, "LineBufferedWriter {{ writer: {:?}, buffer: {}/{} }}" ,
261
261
self . inner. inner, self . inner. pos, self . inner. buf. len( ) )
@@ -299,16 +299,16 @@ impl<W: Writer> Writer for LineBufferedWriter<W> {
299
299
fn flush ( & mut self ) -> IoResult < ( ) > { self . inner . flush ( ) }
300
300
}
301
301
302
- struct InternalBufferedWriter < W > ( BufferedWriter < W > ) ;
302
+ struct InternalBufferedWriter < W : Writer > ( BufferedWriter < W > ) ;
303
303
304
- impl < W > InternalBufferedWriter < W > {
304
+ impl < W : Writer > InternalBufferedWriter < W > {
305
305
fn get_mut < ' a > ( & ' a mut self ) -> & ' a mut BufferedWriter < W > {
306
306
let InternalBufferedWriter ( ref mut w) = * self ;
307
307
return w;
308
308
}
309
309
}
310
310
311
- impl < W : Reader > Reader for InternalBufferedWriter < W > {
311
+ impl < W : Reader + Writer > Reader for InternalBufferedWriter < W > {
312
312
fn read ( & mut self , buf : & mut [ u8 ] ) -> IoResult < uint > {
313
313
self . get_mut ( ) . inner . as_mut ( ) . unwrap ( ) . read ( buf)
314
314
}
@@ -343,12 +343,12 @@ impl<W: Reader> Reader for InternalBufferedWriter<W> {
343
343
/// Err(e) => println!("error reading: {}", e)
344
344
/// }
345
345
/// ```
346
- pub struct BufferedStream < S > {
346
+ pub struct BufferedStream < S : Writer > {
347
347
inner : BufferedReader < InternalBufferedWriter < S > >
348
348
}
349
349
350
350
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
351
- impl < S > fmt:: Debug for BufferedStream < S > where S : fmt:: Debug {
351
+ impl < S : Writer > fmt:: Debug for BufferedStream < S > where S : fmt:: Debug {
352
352
fn fmt ( & self , fmt : & mut fmt:: Formatter ) -> fmt:: Result {
353
353
let reader = & self . inner ;
354
354
let writer = & self . inner . inner . 0 ;
0 commit comments