use glib::object::IsA;
use glib::translate::*;
use std::fmt;
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()) }
}
}
pub trait SmartcardManagerExt: 'static {
#[doc(alias = "spice_smartcard_manager_insert_card")]
fn insert_card(&self) -> bool;
#[doc(alias = "spice_smartcard_manager_remove_card")]
fn remove_card(&self) -> bool;
}
impl<O: IsA<SmartcardManager>> SmartcardManagerExt for O {
fn insert_card(&self) -> bool {
unsafe {
from_glib(ffi::spice_smartcard_manager_insert_card(
self.as_ref().to_glib_none().0,
))
}
}
fn remove_card(&self) -> bool {
unsafe {
from_glib(ffi::spice_smartcard_manager_remove_card(
self.as_ref().to_glib_none().0,
))
}
}
}
impl fmt::Display for SmartcardManager {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("SmartcardManager")
}
}