use crate::{ffi, DomNode};
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "ArvDomNodeList")]
pub struct DomNodeList(Object<ffi::ArvDomNodeList, ffi::ArvDomNodeListClass>);
match fn {
type_ => || ffi::arv_dom_node_list_get_type(),
}
}
impl DomNodeList {
pub const NONE: Option<&'static DomNodeList> = None;
}
unsafe impl Send for DomNodeList {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::DomNodeList>> Sealed for T {}
}
pub trait DomNodeListExt: IsA<DomNodeList> + sealed::Sealed + 'static {
#[doc(alias = "arv_dom_node_list_get_item")]
#[doc(alias = "get_item")]
fn item(&self, index: u32) -> Option<DomNode> {
unsafe {
from_glib_none(ffi::arv_dom_node_list_get_item(
self.as_ref().to_glib_none().0,
index,
))
}
}
#[doc(alias = "arv_dom_node_list_get_length")]
#[doc(alias = "get_length")]
fn length(&self) -> u32 {
unsafe { ffi::arv_dom_node_list_get_length(self.as_ref().to_glib_none().0) }
}
}
impl<O: IsA<DomNodeList>> DomNodeListExt for O {}