gio/auto/
unix_mount_monitor.rs1use crate::ffi;
6use glib::{
7 object::ObjectType as _,
8 prelude::*,
9 signal::{connect_raw, SignalHandlerId},
10 translate::*,
11};
12use std::boxed::Box as Box_;
13
14glib::wrapper! {
15 #[doc(alias = "GUnixMountMonitor")]
16 pub struct UnixMountMonitor(Object<ffi::GUnixMountMonitor, ffi::GUnixMountMonitorClass>);
17
18 match fn {
19 type_ => || ffi::g_unix_mount_monitor_get_type(),
20 }
21}
22
23impl UnixMountMonitor {
24 #[doc(alias = "g_unix_mount_monitor_get")]
25 pub fn get() -> UnixMountMonitor {
26 unsafe { from_glib_full(ffi::g_unix_mount_monitor_get()) }
27 }
28
29 #[doc(alias = "mountpoints-changed")]
30 pub fn connect_mountpoints_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
31 unsafe extern "C" fn mountpoints_changed_trampoline<F: Fn(&UnixMountMonitor) + 'static>(
32 this: *mut ffi::GUnixMountMonitor,
33 f: glib::ffi::gpointer,
34 ) {
35 let f: &F = &*(f as *const F);
36 f(&from_glib_borrow(this))
37 }
38 unsafe {
39 let f: Box_<F> = Box_::new(f);
40 connect_raw(
41 self.as_ptr() as *mut _,
42 c"mountpoints-changed".as_ptr() as *const _,
43 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
44 mountpoints_changed_trampoline::<F> as *const (),
45 )),
46 Box_::into_raw(f),
47 )
48 }
49 }
50
51 #[doc(alias = "mounts-changed")]
52 pub fn connect_mounts_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
53 unsafe extern "C" fn mounts_changed_trampoline<F: Fn(&UnixMountMonitor) + 'static>(
54 this: *mut ffi::GUnixMountMonitor,
55 f: glib::ffi::gpointer,
56 ) {
57 let f: &F = &*(f as *const F);
58 f(&from_glib_borrow(this))
59 }
60 unsafe {
61 let f: Box_<F> = Box_::new(f);
62 connect_raw(
63 self.as_ptr() as *mut _,
64 c"mounts-changed".as_ptr() as *const _,
65 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
66 mounts_changed_trampoline::<F> as *const (),
67 )),
68 Box_::into_raw(f),
69 )
70 }
71 }
72}