diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-11-29 18:37:33 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-11-29 22:07:49 -0800 |
| commit | 3ed9fbd63c6a3c6226bc466786e6d3c1bfec856d (patch) | |
| tree | 3552c8b37426ce0763648cb056f37f03a7b777ed /src/libcore/pipes.rs | |
| parent | 78ee821154ba6034a86397d8540fec00c94e9282 (diff) | |
impls of traits cannot define methods on the anonymous trait
Diffstat (limited to 'src/libcore/pipes.rs')
| -rw-r--r-- | src/libcore/pipes.rs | 23 |
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; |
