use crate::{Object, Pad};
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "GstProxyPad")]
pub struct ProxyPad(Object<ffi::GstProxyPad, ffi::GstProxyPadClass>) @extends Pad, Object;
match fn {
type_ => || ffi::gst_proxy_pad_get_type(),
}
}
impl ProxyPad {
pub const NONE: Option<&'static ProxyPad> = None;
}
unsafe impl Send for ProxyPad {}
unsafe impl Sync for ProxyPad {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::ProxyPad>> Sealed for T {}
}
pub trait ProxyPadExt: IsA<ProxyPad> + sealed::Sealed + 'static {
#[doc(alias = "gst_proxy_pad_get_internal")]
#[doc(alias = "get_internal")]
#[must_use]
fn internal(&self) -> Option<ProxyPad> {
unsafe {
from_glib_full(ffi::gst_proxy_pad_get_internal(
self.as_ref().to_glib_none().0,
))
}
}
}
impl<O: IsA<ProxyPad>> ProxyPadExt for O {}