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, GcFeatureNode};
use glib::{prelude::*, translate::*};

glib::wrapper! {
///
///
/// # Implements
///
/// [`GcSelectorExt`][trait@crate::prelude::GcSelectorExt]
	#[doc(alias = "ArvGcSelector")]
	pub struct GcSelector(Interface<ffi::ArvGcSelector, ffi::ArvGcSelectorInterface>);

	match fn {
		type_ => || ffi::arv_gc_selector_get_type(),
	}
}

impl GcSelector {
	pub const NONE: Option<&'static GcSelector> = None;
}

unsafe impl Send for GcSelector {}

mod sealed {
	pub trait Sealed {}
	impl<T: super::IsA<super::GcSelector>> Sealed for T {}
}

/// Trait containing all [`struct@GcSelector`] methods.
///
/// # Implementors
///
/// [`GcEnumeration`][struct@crate::GcEnumeration], [`GcIntRegNode`][struct@crate::GcIntRegNode], [`GcIntegerNode`][struct@crate::GcIntegerNode], [`GcMaskedIntRegNode`][struct@crate::GcMaskedIntRegNode], [`GcSelector`][struct@crate::GcSelector]
pub trait GcSelectorExt: IsA<GcSelector> + sealed::Sealed + 'static {
	#[doc(alias = "arv_gc_selector_get_selected_features")]
	#[doc(alias = "get_selected_features")]
	fn selected_features(&self) -> Vec<GcFeatureNode> {
		unsafe {
			FromGlibPtrContainer::from_glib_none(ffi::arv_gc_selector_get_selected_features(
				self.as_ref().to_glib_none().0,
			))
		}
	}

	#[doc(alias = "arv_gc_selector_is_selector")]
	fn is_selector(&self) -> bool {
		unsafe {
			from_glib(ffi::arv_gc_selector_is_selector(
				self.as_ref().to_glib_none().0,
			))
		}
	}
}

impl<O: IsA<GcSelector>> GcSelectorExt for O {}