use crate::{Monitor, Reporter, Runner};
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "GstValidateElementMonitor")]
pub struct ElementMonitor(Object<ffi::GstValidateElementMonitor, ffi::GstValidateElementMonitorClass>) @extends Monitor, gst::Object, @implements Reporter;
match fn {
type_ => || ffi::gst_validate_element_monitor_get_type(),
}
}
impl ElementMonitor {
pub const NONE: Option<&'static ElementMonitor> = None;
#[doc(alias = "gst_validate_element_monitor_new")]
pub fn new(
element: &impl IsA<gst::Element>,
runner: &impl IsA<Runner>,
parent: Option<&impl IsA<Monitor>>,
) -> ElementMonitor {
skip_assert_initialized!();
unsafe {
from_glib_full(ffi::gst_validate_element_monitor_new(
element.as_ref().to_glib_none().0,
runner.as_ref().to_glib_none().0,
parent.map(|p| p.as_ref()).to_glib_none().0,
))
}
}
}
unsafe impl Send for ElementMonitor {}
unsafe impl Sync for ElementMonitor {}