From 339618a7f9096507667139364450c9be40768d17 Mon Sep 17 00:00:00 2001
From: Erick Tryzelaar <erick.tryzelaar@gmail.com>
Date: Thu, 24 Jan 2013 12:54:24 -0800
Subject: [PATCH] convert io wrapper records into structs

---
 src/libcore/io.rs | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/libcore/io.rs b/src/libcore/io.rs
index 4b828dd4bc7..fedcb951196 100644
--- a/src/libcore/io.rs
+++ b/src/libcore/io.rs
@@ -455,10 +455,15 @@ impl *libc::FILE: Reader {
     }
 }
 
+struct Wrapper<T, C> {
+    base: T,
+    cleanup: C,
+}
+
 // A forwarding impl of reader that also holds on to a resource for the
 // duration of its lifetime.
 // FIXME there really should be a better way to do this // #2004
-impl<T: Reader, C> {base: T, cleanup: C}: Reader {
+impl<R: Reader, C> Wrapper<R, C>: Reader {
     fn read(&self, bytes: &[mut u8], len: uint) -> uint {
         self.base.read(bytes, len)
     }
@@ -487,7 +492,7 @@ pub fn FILERes(f: *libc::FILE) -> FILERes {
 
 pub fn FILE_reader(f: *libc::FILE, cleanup: bool) -> Reader {
     if cleanup {
-        {base: f, cleanup: FILERes(f)} as Reader
+        Wrapper { base: f, cleanup: FILERes(f) } as Reader
     } else {
         f as Reader
     }
@@ -587,7 +592,7 @@ pub trait Writer {
     fn get_type(&self) -> WriterType;
 }
 
-impl<T: Writer, C> {base: T, cleanup: C}: Writer {
+impl<W: Writer, C> Wrapper<W, C>: Writer {
     fn write(&self, bs: &[const u8]) { self.base.write(bs); }
     fn seek(&self, off: int, style: SeekStyle) { self.base.seek(off, style); }
     fn tell(&self) -> uint { self.base.tell() }
@@ -639,7 +644,7 @@ impl *libc::FILE: Writer {
 
 pub fn FILE_writer(f: *libc::FILE, cleanup: bool) -> Writer {
     if cleanup {
-        {base: f, cleanup: FILERes(f)} as Writer
+        Wrapper { base: f, cleanup: FILERes(f) } as Writer
     } else {
         f as Writer
     }
@@ -696,7 +701,7 @@ pub fn FdRes(fd: fd_t) -> FdRes {
 
 pub fn fd_writer(fd: fd_t, cleanup: bool) -> Writer {
     if cleanup {
-        {base: fd, cleanup: FdRes(fd)} as Writer
+        Wrapper { base: fd, cleanup: FdRes(fd) } as Writer
     } else {
         fd as Writer
     }