@@ -187,31 +187,37 @@ impl<W: Writer> Decorator<W> for BufferedWriter<W> {
187
187
}
188
188
}
189
189
190
- struct InternalBufferedWriter < W > ( BufferedWriter < W > ) ;
190
+ // FIXME #9155 this should be a newtype struct
191
+ struct InternalBufferedWriter < W > {
192
+ inner : BufferedWriter < W >
193
+ }
191
194
192
195
impl < W : Reader > Reader for InternalBufferedWriter < W > {
193
196
fn read ( & mut self , buf : & mut [ u8 ] ) -> Option < uint > {
194
- self . inner . read ( buf)
197
+ self . inner . inner . read ( buf)
195
198
}
196
199
197
200
fn eof ( & mut self ) -> bool {
198
- self . inner . eof ( )
201
+ self . inner . inner . eof ( )
199
202
}
200
203
}
201
204
202
205
/// Wraps a Stream and buffers input and output to and from it
203
206
///
204
207
/// NOTE: `BufferedStream` will NOT flush its output buffer when dropped.
205
- pub struct BufferedStream < S > ( BufferedReader < InternalBufferedWriter < S > > ) ;
208
+ // FIXME #9155 this should be a newtype struct
209
+ pub struct BufferedStream < S > {
210
+ priv inner : BufferedReader < InternalBufferedWriter < S > >
211
+ }
206
212
207
213
impl < S : Stream > BufferedStream < S > {
208
214
pub fn with_capacities ( reader_cap : uint , writer_cap : uint , inner : S )
209
215
-> BufferedStream < S > {
210
216
let writer = BufferedWriter :: with_capacity ( writer_cap, inner) ;
211
- let internal_writer = InternalBufferedWriter ( writer) ;
217
+ let internal_writer = InternalBufferedWriter { inner : writer } ;
212
218
let reader = BufferedReader :: with_capacity ( reader_cap,
213
219
internal_writer) ;
214
- BufferedStream ( reader)
220
+ BufferedStream { inner : reader }
215
221
}
216
222
217
223
pub fn new ( inner : S ) -> BufferedStream < S > {
@@ -222,35 +228,35 @@ impl<S: Stream> BufferedStream<S> {
222
228
223
229
impl < S : Stream > Reader for BufferedStream < S > {
224
230
fn read ( & mut self , buf : & mut [ u8 ] ) -> Option < uint > {
225
- ( * * self ) . read ( buf)
231
+ self . inner . read ( buf)
226
232
}
227
233
228
234
fn eof ( & mut self ) -> bool {
229
- ( * * self ) . eof ( )
235
+ self . inner . eof ( )
230
236
}
231
237
}
232
238
233
239
impl < S : Stream > Writer for BufferedStream < S > {
234
240
fn write ( & mut self , buf : & [ u8 ] ) {
235
- self . inner . write ( buf)
241
+ self . inner . inner . inner . write ( buf)
236
242
}
237
243
238
244
fn flush ( & mut self ) {
239
- self . inner . flush ( )
245
+ self . inner . inner . inner . flush ( )
240
246
}
241
247
}
242
248
243
249
impl < S : Stream > Decorator < S > for BufferedStream < S > {
244
250
fn inner ( self ) -> S {
245
- self . inner . inner ( )
251
+ self . inner . inner . inner . inner ( )
246
252
}
247
253
248
254
fn inner_ref < ' a > ( & ' a self ) -> & ' a S {
249
- self . inner . inner_ref ( )
255
+ self . inner . inner . inner . inner_ref ( )
250
256
}
251
257
252
258
fn inner_mut_ref < ' a > ( & ' a mut self ) -> & ' a mut S {
253
- self . inner . inner_mut_ref ( )
259
+ self . inner . inner . inner . inner_mut_ref ( )
254
260
}
255
261
}
256
262
0 commit comments