@@ -187,31 +187,37 @@ impl<W: Writer> Decorator<W> for BufferedWriter<W> {
187187 }
188188}
189189
190- struct InternalBufferedWriter < W > ( BufferedWriter < W > ) ;
190+ // FIXME #9155 this should be a newtype struct
191+ struct InternalBufferedWriter < W > {
192+ inner : BufferedWriter < W >
193+ }
191194
192195impl < W : Reader > Reader for InternalBufferedWriter < W > {
193196 fn read ( & mut self , buf : & mut [ u8 ] ) -> Option < uint > {
194- self . inner . read ( buf)
197+ self . inner . inner . read ( buf)
195198 }
196199
197200 fn eof ( & mut self ) -> bool {
198- self . inner . eof ( )
201+ self . inner . inner . eof ( )
199202 }
200203}
201204
202205/// Wraps a Stream and buffers input and output to and from it
203206///
204207/// 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+ }
206212
207213impl < S : Stream > BufferedStream < S > {
208214 pub fn with_capacities ( reader_cap : uint , writer_cap : uint , inner : S )
209215 -> BufferedStream < S > {
210216 let writer = BufferedWriter :: with_capacity ( writer_cap, inner) ;
211- let internal_writer = InternalBufferedWriter ( writer) ;
217+ let internal_writer = InternalBufferedWriter { inner : writer } ;
212218 let reader = BufferedReader :: with_capacity ( reader_cap,
213219 internal_writer) ;
214- BufferedStream ( reader)
220+ BufferedStream { inner : reader }
215221 }
216222
217223 pub fn new ( inner : S ) -> BufferedStream < S > {
@@ -222,35 +228,35 @@ impl<S: Stream> BufferedStream<S> {
222228
223229impl < S : Stream > Reader for BufferedStream < S > {
224230 fn read ( & mut self , buf : & mut [ u8 ] ) -> Option < uint > {
225- ( * * self ) . read ( buf)
231+ self . inner . read ( buf)
226232 }
227233
228234 fn eof ( & mut self ) -> bool {
229- ( * * self ) . eof ( )
235+ self . inner . eof ( )
230236 }
231237}
232238
233239impl < S : Stream > Writer for BufferedStream < S > {
234240 fn write ( & mut self , buf : & [ u8 ] ) {
235- self . inner . write ( buf)
241+ self . inner . inner . inner . write ( buf)
236242 }
237243
238244 fn flush ( & mut self ) {
239- self . inner . flush ( )
245+ self . inner . inner . inner . flush ( )
240246 }
241247}
242248
243249impl < S : Stream > Decorator < S > for BufferedStream < S > {
244250 fn inner ( self ) -> S {
245- self . inner . inner ( )
251+ self . inner . inner . inner . inner ( )
246252 }
247253
248254 fn inner_ref < ' a > ( & ' a self ) -> & ' a S {
249- self . inner . inner_ref ( )
255+ self . inner . inner . inner . inner_ref ( )
250256 }
251257
252258 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 ( )
254260 }
255261}
256262
0 commit comments