aravis 0.11.1

safe bindings for Aravis, a vision library for genicam based cameras
Documentation
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from ../gir-files
// DO NOT EDIT

use crate::{ffi, DomNode};
use glib::{prelude::*, translate::*};

glib::wrapper! {
///
///
/// This is an Abstract Base Class, you cannot instantiate it.
///
/// # Implements
///
/// [`DomNamedNodeMapExt`][trait@crate::prelude::DomNamedNodeMapExt], [`trait@glib::ObjectExt`]
	#[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 {}
}

/// Trait containing all [`struct@DomNamedNodeMap`] methods.
///
/// # Implementors
///
/// [`DomNamedNodeMap`][struct@crate::DomNamedNodeMap]
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 {}