Skip to main content

gstreamer_tracing/tracer/
mod.rs

1use gst::{Object, Tracer, glib, subclass::prelude::*};
2
3mod imp;
4
5glib::wrapper! {
6    pub struct TracingTracer(ObjectSubclass<imp::TracingTracer>)
7       @extends Tracer, Object;
8}
9
10glib::wrapper! {
11    #[doc(hidden)]
12    pub struct SpanPropagationTracer(ObjectSubclass<imp::SpanPropagationTracer>)
13       @extends Tracer, Object;
14}
15
16/// Trait for implementing custom tracers that extend `TracingTracer`.
17///
18/// Implement this trait to create tracers that build upon the GStreamer-tracing
19/// integration, such as tracers that use specific tracing subscribers.
20pub trait TracingTracerImpl: TracerImpl {}
21
22unsafe impl<T: TracingTracerImpl> IsSubclassable<T> for TracingTracer {
23    fn class_init(class: &mut glib::Class<Self>) {
24        skip_assert_initialized!();
25        Self::parent_class_init::<T>(class);
26    }
27}