about summary refs log tree commit diff
path: root/src/libcore/pipes.rs
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-11-29 18:37:33 -0800
committerBrian Anderson <banderson@mozilla.com>2012-11-29 22:07:49 -0800
commit3ed9fbd63c6a3c6226bc466786e6d3c1bfec856d (patch)
tree3552c8b37426ce0763648cb056f37f03a7b777ed /src/libcore/pipes.rs
parent78ee821154ba6034a86397d8540fec00c94e9282 (diff)
impls of traits cannot define methods on the anonymous trait
Diffstat (limited to 'src/libcore/pipes.rs')
-rw-r--r--src/libcore/pipes.rs23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/libcore/pipes.rs b/src/libcore/pipes.rs
index 561732057cf..a06564a470e 100644
--- a/src/libcore/pipes.rs
+++ b/src/libcore/pipes.rs
@@ -811,13 +811,22 @@ pub struct RecvPacketBuffered<T: Send, Tbuffer: Send> {
     }
 }
 
-impl<T: Send, Tbuffer: Send> RecvPacketBuffered<T, Tbuffer> : Selectable {
+impl<T: Send, Tbuffer: Send> RecvPacketBuffered<T, Tbuffer> {
     fn unwrap() -> *Packet<T> {
         let mut p = None;
         p <-> self.p;
         option::unwrap(move p)
     }
 
+    fn reuse_buffer() -> BufferResource<Tbuffer> {
+        //error!("recv reuse_buffer");
+        let mut tmp = None;
+        tmp <-> self.buffer;
+        option::unwrap(move tmp)
+    }
+}
+
+impl<T: Send, Tbuffer: Send> RecvPacketBuffered<T, Tbuffer> : Selectable {
     pure fn header() -> *PacketHeader {
         match self.p {
           Some(packet) => unsafe {
@@ -829,13 +838,6 @@ impl<T: Send, Tbuffer: Send> RecvPacketBuffered<T, Tbuffer> : Selectable {
           None => fail ~"packet already consumed"
         }
     }
-
-    fn reuse_buffer() -> BufferResource<Tbuffer> {
-        //error!("recv reuse_buffer");
-        let mut tmp = None;
-        tmp <-> self.buffer;
-        option::unwrap(move tmp)
-    }
 }
 
 pub fn RecvPacketBuffered<T: Send, Tbuffer: Send>(p: *Packet<T>)
@@ -1046,7 +1048,7 @@ pub fn PortSet<T: Send>() -> PortSet<T>{
     }
 }
 
-impl<T: Send> PortSet<T> : Recv<T> {
+impl<T: Send> PortSet<T> {
 
     fn add(port: pipes::Port<T>) {
         self.ports.push(move port)
@@ -1057,6 +1059,9 @@ impl<T: Send> PortSet<T> : Recv<T> {
         self.add(move po);
         move ch
     }
+}
+
+impl<T: Send> PortSet<T> : Recv<T> {
 
     fn try_recv() -> Option<T> {
         let mut result = None;