mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Make RenderChan a newtype struct.
Also, derive Clone rather than implementing it manually.
This commit is contained in:
parent
7f2d551e47
commit
350c2b92d2
3 changed files with 10 additions and 21 deletions
|
@ -73,34 +73,23 @@ pub fn BufferRequest(screen_rect: Rect<uint>, page_rect: Rect<f32>) -> BufferReq
|
|||
}
|
||||
}
|
||||
|
||||
// FIXME(#2005, pcwalton): This should be a newtype struct.
|
||||
pub struct RenderChan {
|
||||
pub chan: Sender<Msg>,
|
||||
}
|
||||
|
||||
impl Clone for RenderChan {
|
||||
fn clone(&self) -> RenderChan {
|
||||
RenderChan {
|
||||
chan: self.chan.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
#[deriving(Clone)]
|
||||
pub struct RenderChan(Sender<Msg>);
|
||||
|
||||
impl RenderChan {
|
||||
pub fn new() -> (Receiver<Msg>, RenderChan) {
|
||||
let (chan, port) = channel();
|
||||
let render_chan = RenderChan {
|
||||
chan: chan,
|
||||
};
|
||||
(port, render_chan)
|
||||
(port, RenderChan(chan))
|
||||
}
|
||||
|
||||
pub fn send(&self, msg: Msg) {
|
||||
assert!(self.send_opt(msg).is_ok(), "RenderChan.send: render port closed")
|
||||
let &RenderChan(ref chan) = self;
|
||||
assert!(chan.send_opt(msg).is_ok(), "RenderChan.send: render port closed")
|
||||
}
|
||||
|
||||
pub fn send_opt(&self, msg: Msg) -> Result<(), Msg> {
|
||||
self.chan.send_opt(msg)
|
||||
let &RenderChan(ref chan) = self;
|
||||
chan.send_opt(msg)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue