use crate::{ffi, DomNode};
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "ArvDomNamedNodeMap")]
pub struct DomNamedNodeMap(Object<ffi::ArvDomNamedNodeMap, ffi::ArvDomNamedNodeMapClass>);
match fn {
type_ => || ffi::arv_dom_named_node_map_get_type(),
}
}
impl DomNamedNodeMap {
pub const NONE: Option<&'static DomNamedNodeMap> = None;
}
unsafe impl Send for DomNamedNodeMap {}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::DomNamedNodeMap>> Sealed for T {}
}
pub trait DomNamedNodeMapExt: IsA<DomNamedNodeMap> + sealed::Sealed + 'static {
#[doc(alias = "arv_dom_named_node_map_get_item")]
#[doc(alias = "get_item")]
fn item(&self, index: u32) -> Option<DomNode> {
unsafe {
from_glib_none(ffi::arv_dom_named_node_map_get_item(
self.as_ref().to_glib_none().0,
index,
))
}
}
#[doc(alias = "arv_dom_named_node_map_get_length")]
#[doc(alias = "get_length")]
fn length(&self) -> u32 {
unsafe { ffi::arv_dom_named_node_map_get_length(self.as_ref().to_glib_none().0) }
}
#[doc(alias = "arv_dom_named_node_map_get_named_item")]
#[doc(alias = "get_named_item")]
fn named_item(&self, name: &str) -> Option<DomNode> {
unsafe {
from_glib_none(ffi::arv_dom_named_node_map_get_named_item(
self.as_ref().to_glib_none().0,
name.to_glib_none().0,
))
}
}
#[doc(alias = "arv_dom_named_node_map_remove_named_item")]
fn remove_named_item(&self, name: &str) -> Option<DomNode> {
unsafe {
from_glib_none(ffi::arv_dom_named_node_map_remove_named_item(
self.as_ref().to_glib_none().0,
name.to_glib_none().0,
))
}
}
#[doc(alias = "arv_dom_named_node_map_set_named_item")]
fn set_named_item(&self, item: &impl IsA<DomNode>) -> Option<DomNode> {
unsafe {
from_glib_none(ffi::arv_dom_named_node_map_set_named_item(
self.as_ref().to_glib_none().0,
item.as_ref().to_glib_none().0,
))
}
}
}
impl<O: IsA<DomNamedNodeMap>> DomNamedNodeMapExt for O {}