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