mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Format components canvas and canvas_traits #21373
This commit is contained in:
parent
2a4bee540c
commit
f472d05003
4 changed files with 89 additions and 47 deletions
|
@ -13,9 +13,7 @@ use servo_config::opts;
|
|||
use std::fmt;
|
||||
|
||||
lazy_static! {
|
||||
static ref IS_MULTIPROCESS: bool = {
|
||||
opts::multiprocess()
|
||||
};
|
||||
static ref IS_MULTIPROCESS: bool = { opts::multiprocess() };
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Serialize)]
|
||||
|
@ -34,41 +32,42 @@ impl<T: Serialize> WebGLSender<T> {
|
|||
#[inline]
|
||||
pub fn send(&self, msg: T) -> WebGLSendResult {
|
||||
match *self {
|
||||
WebGLSender::Ipc(ref sender) => {
|
||||
sender.send(msg).map_err(|_| ())
|
||||
},
|
||||
WebGLSender::Mpsc(ref sender) => {
|
||||
sender.send(msg).map_err(|_| ())
|
||||
}
|
||||
WebGLSender::Ipc(ref sender) => sender.send(msg).map_err(|_| ()),
|
||||
WebGLSender::Mpsc(ref sender) => sender.send(msg).map_err(|_| ()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub type WebGLSendResult = Result<(), ()>;
|
||||
|
||||
pub enum WebGLReceiver<T> where T: for<'de> Deserialize<'de> + Serialize {
|
||||
pub enum WebGLReceiver<T>
|
||||
where
|
||||
T: for<'de> Deserialize<'de> + Serialize,
|
||||
{
|
||||
Ipc(ipc::WebGLReceiver<T>),
|
||||
Mpsc(mpsc::WebGLReceiver<T>),
|
||||
}
|
||||
|
||||
impl<T> WebGLReceiver<T> where T: for<'de> Deserialize<'de> + Serialize {
|
||||
impl<T> WebGLReceiver<T>
|
||||
where
|
||||
T: for<'de> Deserialize<'de> + Serialize,
|
||||
{
|
||||
pub fn recv(&self) -> Result<T, ()> {
|
||||
match *self {
|
||||
WebGLReceiver::Ipc(ref receiver) => {
|
||||
receiver.recv().map_err(|_| ())
|
||||
},
|
||||
WebGLReceiver::Mpsc(ref receiver) => {
|
||||
receiver.recv().map_err(|_| ())
|
||||
}
|
||||
WebGLReceiver::Ipc(ref receiver) => receiver.recv().map_err(|_| ()),
|
||||
WebGLReceiver::Mpsc(ref receiver) => receiver.recv().map_err(|_| ()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn webgl_channel<T>() -> Result<(WebGLSender<T>, WebGLReceiver<T>), ()>
|
||||
where T: for<'de> Deserialize<'de> + Serialize {
|
||||
where
|
||||
T: for<'de> Deserialize<'de> + Serialize,
|
||||
{
|
||||
if *IS_MULTIPROCESS {
|
||||
ipc::webgl_channel().map(|(tx, rx)| (WebGLSender::Ipc(tx), WebGLReceiver::Ipc(rx)))
|
||||
.map_err(|_| ())
|
||||
ipc::webgl_channel()
|
||||
.map(|(tx, rx)| (WebGLSender::Ipc(tx), WebGLReceiver::Ipc(rx)))
|
||||
.map_err(|_| ())
|
||||
} else {
|
||||
mpsc::webgl_channel().map(|(tx, rx)| (WebGLSender::Mpsc(tx), WebGLReceiver::Mpsc(rx)))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue