use crate::ffi;
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "SpiceSmartcardManager")]
pub struct SmartcardManager(Object<ffi::SpiceSmartcardManager, ffi::SpiceSmartcardManagerClass>);
match fn {
type_ => || ffi::spice_smartcard_manager_get_type(),
}
}
impl SmartcardManager {
pub const NONE: Option<&'static SmartcardManager> = None;
#[doc(alias = "spice_smartcard_manager_get")]
pub fn get() -> Option<SmartcardManager> {
assert_initialized_main_thread!();
unsafe { from_glib_none(ffi::spice_smartcard_manager_get()) }
}
}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::SmartcardManager>> Sealed for T {}
}
pub trait SmartcardManagerExt: IsA<SmartcardManager> + sealed::Sealed + 'static {
#[doc(alias = "spice_smartcard_manager_insert_card")]
fn insert_card(&self) -> bool {
unsafe {
from_glib(ffi::spice_smartcard_manager_insert_card(
self.as_ref().to_glib_none().0,
))
}
}
#[doc(alias = "spice_smartcard_manager_remove_card")]
fn remove_card(&self) -> bool {
unsafe {
from_glib(ffi::spice_smartcard_manager_remove_card(
self.as_ref().to_glib_none().0,
))
}
}
}
impl<O: IsA<SmartcardManager>> SmartcardManagerExt for O {}