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