gio/
unix_mount_entry.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use std::mem;
4
5use glib::translate::*;
6
7use crate::{ffi, UnixMountEntry};
8
9impl UnixMountEntry {
10    #[doc(alias = "g_unix_mounts_get")]
11    #[doc(alias = "g_unix_mount_entries_get")]
12    #[doc(alias = "get_mounts")]
13    pub fn mounts() -> (Vec<UnixMountEntry>, u64) {
14        unsafe {
15            let mut time_read = mem::MaybeUninit::uninit();
16            let ret = FromGlibPtrContainer::from_glib_full(ffi::g_unix_mount_entries_get(
17                time_read.as_mut_ptr(),
18            ));
19            let time_read = time_read.assume_init();
20            (ret, time_read)
21        }
22    }
23
24    #[cfg(feature = "v2_82")]
25    #[cfg_attr(docsrs, doc(cfg(feature = "v2_82")))]
26    #[doc(alias = "g_unix_mounts_get")]
27    #[doc(alias = "g_unix_mount_entries_get")]
28    #[doc(alias = "get_mounts")]
29    pub fn mounts_from_file(table_path: impl AsRef<std::path::Path>) -> (Vec<UnixMountEntry>, u64) {
30        unsafe {
31            let mut time_read = mem::MaybeUninit::uninit();
32            let mut n_entries_out = mem::MaybeUninit::uninit();
33            let ret = ffi::g_unix_mount_entries_get_from_file(
34                table_path.as_ref().to_glib_none().0,
35                time_read.as_mut_ptr(),
36                n_entries_out.as_mut_ptr(),
37            );
38            let n_entries_out = n_entries_out.assume_init();
39            let ret = FromGlibContainer::from_glib_full_num(ret, n_entries_out);
40            let time_read = time_read.assume_init();
41            (ret, time_read)
42        }
43    }
44
45    #[doc(alias = "g_unix_mount_get_mount_path")]
46    #[deprecated = "Use `mount_path()`"]
47    pub fn unix_mount_get_mount_path(&self) -> std::path::PathBuf {
48        self.mount_path()
49    }
50
51    #[doc(alias = "g_unix_mounts_changed_since")]
52    #[doc(alias = "g_unix_mount_entries_changed_since")]
53    pub fn is_changed_since(time: u64) -> bool {
54        unsafe { from_glib(ffi::g_unix_mount_entries_changed_since(time)) }
55    }
56}