1 // Copyright (C) 2017,2018 Sebastian Dröge <sebastian@centricular.com>
2 //
3 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
4 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
5 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
6 // option. This file may not be copied, modified, or distributed
7 // except according to those terms.
8 
9 use gst_sys;
10 
11 use super::prelude::*;
12 use glib::subclass::prelude::*;
13 
14 use PipelineClass;
15 
16 pub trait PipelineImpl: BinImpl + Send + Sync + 'static {}
17 
18 unsafe impl<T: ObjectSubclass + PipelineImpl> IsSubclassable<T> for PipelineClass
19 where
20     <T as ObjectSubclass>::Instance: PanicPoison,
21 {
override_vfuncs(&mut self)22     fn override_vfuncs(&mut self) {
23         <::BinClass as IsSubclassable<T>>::override_vfuncs(self);
24         unsafe {
25             let _klass = &mut *(self as *mut Self as *mut gst_sys::GstPipelineClass);
26             // Nothing to do here
27         }
28     }
29 }
30