diff options
Diffstat (limited to 'components/canvas_traits/webgl_channel/mod.rs')
-rw-r--r-- | components/canvas_traits/webgl_channel/mod.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/components/canvas_traits/webgl_channel/mod.rs b/components/canvas_traits/webgl_channel/mod.rs index f317d116f3d..3c6bd1690b0 100644 --- a/components/canvas_traits/webgl_channel/mod.rs +++ b/components/canvas_traits/webgl_channel/mod.rs @@ -16,12 +16,24 @@ lazy_static! { static ref IS_MULTIPROCESS: bool = { opts::multiprocess() }; } -#[derive(Clone, Deserialize, Serialize)] +#[derive(Deserialize, Serialize)] pub enum WebGLSender<T: Serialize> { Ipc(ipc::WebGLSender<T>), Mpsc(mpsc::WebGLSender<T>), } +impl<T> Clone for WebGLSender<T> +where + T: Serialize, +{ + fn clone(&self) -> Self { + match *self { + WebGLSender::Ipc(ref chan) => WebGLSender::Ipc(chan.clone()), + WebGLSender::Mpsc(ref chan) => WebGLSender::Mpsc(chan.clone()), + } + } +} + impl<T: Serialize> fmt::Debug for WebGLSender<T> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "WebGLSender(..)") |