// Copyright (c) 2023 Nick Piaddo
// SPDX-License-Identifier: Apache-2.0 OR MIT
//! ## Description
//!
//! The `rsmount` library is a safe Rust wrapper around `util-linux/libmount`.
//!
//! `rsmount` allows users to, among other things:
//! - mount devices on an operating system's file hierarchy,
//! - list/manage mount points in `/proc/<pid>/mountinfo`,
//! - consult the system's swap usage from `/proc/swaps`,
//! - compose/edit `/etc/fstab`, the file describing all devices an OS
//! should mount at boot.
//! - etc.
//!
//! ## Examples
//!
//! Mount a device on a operating system's file tree.
//!
//! ```ignore
//! use rsmount::device::BlockDevice;
//! use rsmount::flags::MountFlag;
//! use rsmount::fs::FileSystem;
//! use rsmount::mount::Mount;
//!
//! fn main() -> rsmount::Result<()> {
//! // Configure the `Mount` struct.
//! let block_device: BlockDevice = "/dev/vda".parse()?;
//! let mut mount = Mount::builder()
//! // Device to mount.
//! .source(block_device)
//! // Location of the mount point in the file tree.
//! .target("/mnt")
//! // Do not allow writing to the file system while it is mounted.
//! .mount_flags(vec![MountFlag::ReadOnly])
//! // Gives a hint about the file system used by the device (optional).
//! .file_system(FileSystem::Ext4)
//! .build()?;
//!
//! // Mount `/dev/vda` at `/mnt`.
//! mount.mount_device()?;
//!
//! Ok(())
//! }
//! ```
//!
//! Create an `fstab`.
//! ```
//! use std::str::FromStr;
//! use rsmount::tables::FsTab;
//! use rsmount::entries::FsTabEntry;
//! use rsmount::device::BlockDevice;
//! use rsmount::device::Pseudo;
//! use rsmount::device::Source;
//! use rsmount::device::Tag;
//! use rsmount::fs::FileSystem;
//!
//! fn main() -> rsmount::Result<()> {
//! let mut fstab = FsTab::new()?;
//!
//! fstab.set_intro_comments("# /etc/fstab\n")?;
//! fstab.append_to_intro_comments("# Example from scratch\n")?;
//!
//! // Mount the device with the following UUID as the root file system.
//! let uuid = Tag::from_str("UUID=dd476616-1ce4-415e-9dbd-8c2fa8f42f0f")?;
//! let entry1 = FsTabEntry::builder()
//! .source(uuid)
//! .target("/")
//! .file_system_type(FileSystem::Ext4)
//! // Comma-separated list of mount options.
//! .mount_options("rw,relatime")
//! // Interval, in days, between file system backups by the dump command on ext2/3/4
//! // file systems.
//! .backup_frequency(0)
//! // Order in which file systems are checked by the `fsck` command.
//! .fsck_checking_order(1)
//! .build()?;
//!
//! // Mount the removable device `/dev/usbdisk` on demand.
//! let block_device = BlockDevice::from_str("/dev/usbdisk")?;
//! let entry2 = FsTabEntry::builder()
//! .source(block_device)
//! .target("/media/usb")
//! .file_system_type(FileSystem::VFAT)
//! .mount_options("noauto")
//! .backup_frequency(0)
//! .fsck_checking_order(0)
//! .build()?;
//!
//! // Mount a pseudo-filesystem (tmpfs) at `/tmp`
//! let entry3 = FsTabEntry::builder()
//! .source(Pseudo::None)
//! .target("/tmp")
//! .file_system_type(FileSystem::Tmpfs)
//! .mount_options("nosuid,nodev")
//! .backup_frequency(0)
//! .fsck_checking_order(0)
//! .build()?;
//!
//! fstab.push(entry1);
//! fstab.push(entry2);
//! fstab.push(entry3);
//!
//! println!("{}", fstab);
//!
//! // Example output
//! //
//! // # /etc/fstab
//! // # Example from scratch
//! //
//! // UUID=dd476616-1ce4-415e-9dbd-8c2fa8f42f0f / ext4 rw,relatime 0 1
//! // /dev/usbdisk /media/usb vfat noauto 0 0
//! // none /tmp tmpfs nosuid,nodev 0 0
//!
//! Ok(())
//! }
//! ```
//!
//! ## API structure
//!
//! `rsmount`'s API is roughly divided into two main modules:
//! - [`tables`]: a module for manipulating file system descriptions tables (`/etc/fstab`,
//! `/proc/self/mountinfo`, `/proc/swaps`, `/run/mount/utab`).
//! - [`mount`]: a module to mount devices on the system's file tree.
//!
//! Finally, look to the [`debug`] module if you need to consult debug messages during development.
//!
//! ## From `libmount` to `rsmount` API
//!
//! This section maps `libmount` functions to `rsmount` methods. It follows the same layout as
//! `libmount`’s documentation. You can use it as a reference to ease the transition from one API
//! to the other.
//!
//! ### Higher-level API
//! #### Library high-level context
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_context`][1] | [`Mount`](crate::mount::Mount) <br> [`Unmount`](crate::mount::Unmount) |
//! | [`struct libmnt_ns`][2] | [`MountNamespace`](crate::mount::MountNamespace) |
//! | [`MNT_ERR_AMBIFS`][3] | [`ErrorCode::FsCollision`](crate::mount::ErrorCode::FsCollision) |
//! | [`MNT_ERR_APPLYFLAGS`][4] | [`ErrorCode::ApplyFlags`](crate::mount::ErrorCode::ApplyFlags) |
//! | [`MNT_ERR_LOOPDEV`][5] | [`ErrorCode::LoopDevice`](crate::mount::ErrorCode::LoopDevice) |
//! | [`MNT_ERR_MOUNTOPT`][6] | [`ErrorCode::UserspaceMountOptions`](crate::mount::ErrorCode::UserspaceMountOptions) |
//! | [`MNT_ERR_NOFSTAB`][7] | [`ErrorCode::FsTabMissingEntry`](crate::mount::ErrorCode::FsTabMissingEntry) |
//! | [`MNT_ERR_NOFSTYPE`][8] | [`ErrorCode::NoFsType`](crate::mount::ErrorCode::NoFsType) |
//! | [`MNT_ERR_NOSOURCE`][9] | [`ErrorCode::UndefinedMountSource`](crate::mount::ErrorCode::UndefinedMountSource) |
//! | [`MNT_ERR_LOOPOVERLAP`][10] | [`ErrorCode::LoopDeviceOverlap`](crate::mount::ErrorCode::LoopDeviceOverlap) |
//! | [`MNT_ERR_LOCK`][11] | [`ErrorCode::Lock`](crate::mount::ErrorCode::Lock) |
//! | [`MNT_ERR_NAMESPACE`][12] | [`ErrorCode::NamespaceSwitch`](crate::mount::ErrorCode::NamespaceSwitch) |
//! | [`MNT_EX_SUCCESS`][13] | [`ExitCode::Success`](crate::mount::ExitCode::Success) |
//! | [`MNT_EX_USAGE`][14] | [`ExitCode::InvalidUsage`](crate::mount::ExitCode::InvalidUsage) |
//! | [`MNT_EX_SYSERR`][15] | [`ExitCode::SystemError`](crate::mount::ExitCode::SystemError) |
//! | [`MNT_EX_SOFTWARE`][16] | [`ExitCode::InternalError`](crate::mount::ExitCode::InternalError) |
//! | [`MNT_EX_USER`][17] | [`ExitCode::UserInterrupt`](crate::mount::ExitCode::UserInterrupt) |
//! | [`MNT_EX_FILEIO`][18] | [`ExitCode::IoError`](crate::mount::ExitCode::IoError) |
//! | [`MNT_EX_FAIL`][19] | [`ExitCode::Failure`](crate::mount::ExitCode::Failure) |
//! | [`MNT_EX_SOMEOK`][20] | [`ExitCode::PartialSuccess`](crate::mount::ExitCode::PartialSuccess) |
//! | [`mnt_free_context`][21] | [`Mount`](crate::mount::Mount) and [`Unmount`](crate::mount::Unmount) are automatically deallocated when they go out of scope. |
//! | [`mnt_new_context`][22] | [`Mount::builder`](crate::mount::Mount::builder) <br> [`Unmount::builder`](crate::mount::Unmount::builder) |
//! | [`mnt_reset_context`][23] | Not implemented. |
//! | [`mnt_context_append_options`][24] | [`Mount::append_mount_options`](crate::mount::Mount::append_mount_options) |
//! | [`mnt_context_apply_fstab`][25] | |
//! | [`mnt_context_disable_canonicalize`][26] | [`MountBuilder::disable_path_canonicalization`](crate::mount::MountBuilder::disable_path_canonicalization) <br> [`UnmountBuilder::disable_path_canonicalization`](crate::mount::UnmountBuilder::disable_path_canonicalization) |
//! | [`mnt_context_disable_helpers`][27] | [`MountBuilder::disable_helpers`](crate::mount::MountBuilder::disable_helpers) <br> [`UnmountBuilder::disable_helpers`](crate::mount::UnmountBuilder::disable_helpers) |
//! | [`mnt_context_disable_mtab`][28] | [`MountBuilder::do_not_update_utab`](crate::mount::MountBuilder::do_not_update_utab) <br> [`UnmountBuilder::do_not_update_utab`](crate::mount::UnmountBuilder::do_not_update_utab) |
//! | [`mnt_context_disable_swapmatch`][29] | [`MountBuilder::disable_mount_point_lookup`](crate::mount::MountBuilder::disable_mount_point_lookup) |
//! | [`mnt_context_enable_fake`][30] | [`MountBuilder::dry_run`](crate::mount::MountBuilder::dry_run) <br> [`UnmountBuilder::dry_run`](crate::mount::UnmountBuilder::dry_run) |
//! | [`mnt_context_enable_force`][31] | [`UnmountBuilder::force_unmount`](crate::mount::UnmountBuilder::force_unmount) |
//! | [`mnt_context_enable_fork`][32] | [`MountBuilder::parallel_mount`](crate::mount::MountBuilder::parallel_mount) |
//! | [`mnt_context_enable_lazy`][33] | [`UnmountBuilder::lazy_unmount`](crate::mount::UnmountBuilder::lazy_unmount) |
//! | [`mnt_context_enable_loopdel`][34] | [`UnmountBuilder::detach_loop_device`](crate::mount::UnmountBuilder::detach_loop_device) |
//! | [`mnt_context_enable_noautofs`][35] | [`MountBuilder::ignore_autofs`](crate::mount::MountBuilder::ignore_autofs) |
//! | [`mnt_context_enable_onlyonce`][36] | [`MountBuilder::mount_only_once`](crate::mount::MountBuilder::mount_only_once) |
//! | [`mnt_context_enable_rdonly_umount`][37] | [`UnmountBuilder::on_fail_remount_read_only`](crate::mount::UnmountBuilder::on_fail_remount_read_only) |
//! | [`mnt_context_enable_rwonly_mount`][38] | [`MountBuilder::force_mount_read_write`](crate::mount::MountBuilder::force_mount_read_write) |
//! | [`mnt_context_enable_sloppy`][39] | [`MountBuilder::ignore_unsupported_mount_options`](crate::mount::MountBuilder::ignore_unsupported_mount_options) |
//! | [`mnt_context_enable_verbose`][40] | [`MountBuilder::verbose`](crate::mount::MountBuilder::verbose) <br> [`UnmountBuilder::verbose`](crate::mount::UnmountBuilder::verbose) |
//! | [`mnt_context_forced_rdonly`][41] | [`Mount::is_mounted_read_only`](crate::mount::Mount::is_mounted_read_only) |
//! | [`mnt_context_force_unrestricted`][42] | [`MountBuilder::force_user_mount`](crate::mount::MountBuilder::force_user_mount) |
//! | [`mnt_context_get_cache`][43] | [`Mount::cache`](crate::mount::Mount::cache) |
//! | [`mnt_context_get_excode`][44] | Not implemented, managed internally. |
//! | [`mnt_context_get_fs`][45] | [`Mount::internal_table_entry`](crate::mount::Mount::internal_table_entry) |
//! | [`mnt_context_get_fstab`][46] | [`Mount::fstab`](crate::mount::Mount::fstab) |
//! | [`mnt_context_get_fstab_userdata`][47] | [`Mount::fstab_user_data`](crate::mount::Mount::fstab_user_data) |
//! | [`mnt_context_get_fstype`][48] | [`Mount::file_system_type`](crate::mount::Mount::file_system_type) |
//! | [`mnt_context_get_fs_userdata`][49] | [`Mount::internal_table_entry_user_data`](crate::mount::Mount::internal_table_entry_user_data) |
//! | [`mnt_context_get_helper_status`][50] | [`Mount::mount_helper_exit_status`](crate::mount::Mount::mount_helper_exit_status) <br> [`Unmount::umount_helper_exit_status`](crate::mount::Unmount::umount_helper_exit_status) |
//! | [`mnt_context_get_lock`][51] | [`Mount::utab_file_lock`](crate::mount::Mount::utab_file_lock) |
//! | [`mnt_context_get_mflags`][52] | [`Mount::mount_flags`](crate::mount::Mount::mount_flags) |
//! | [`mnt_context_get_mtab`][53] | [`Mount::mountinfo`](crate::mount::Mount::mountinfo) |
//! | [`mnt_context_get_mtab_userdata`][54] | [`Mount::mountinfo_user_data`](crate::mount::Mount::mountinfo_user_data) |
//! | [`mnt_context_get_options`][55] | [`Mount::mount_options`](crate::mount::Mount::mount_options) |
//! | [`mnt_context_get_optsmode`][56] | [`Mount::mount_options_mode`](crate::mount::Mount::mount_options_mode) |
//! | [`mnt_context_get_origin_ns`][57] | [`Mount::original_namespace`](crate::mount::Mount::original_namespace) |
//! | [`mnt_context_get_source`][58] | [`Mount::source`](crate::mount::Mount::source) |
//! | [`mnt_context_get_status`][59] | [`Mount::is_mount_successful`](crate::mount::Mount::is_mount_successful) |
//! | [`mnt_context_get_syscall_errno`][60] | [`Mount::mount_syscall_errno`](crate::mount::Mount::mount_syscall_errno) <br> [`Unmount::umount_syscall_errno`](crate::mount::Unmount::umount_syscall_errno) |
//! | [`mnt_context_get_table`][61] | Not implemented. Use [`FsTab::import_file`](crate::tables::FsTab::import_file) |
//! | [`mnt_context_get_target`][62] | [`Mount::target`](crate::mount::Mount::target) |
//! | [`mnt_context_get_target_ns`][63] | [`Mount::target_namespace`](crate::mount::Mount::target_namespace) |
//! | [`mnt_context_get_target_prefix`][64] | [`Mount::target_prefix`](crate::mount::Mount::target_prefix) |
//! | [`mnt_context_get_user_mflags`][65] | [`Mount::userspace_mount_flags`](crate::mount::Mount::userspace_mount_flags) |
//! | [`mnt_context_helper_executed`][66] | [`Mount::has_run_mount_helper`](crate::mount::Mount::has_run_mount_helper) <br> [`Unmount::has_run_umount_helper`](crate::mount::Unmount::has_run_umount_helper) |
//! | [`mnt_context_helper_setopt`][67] | |
//! | [`mnt_context_init_helper`][68] | |
//! | [`mnt_context_is_child`][69] | [`Mount::is_child_process`](crate::mount::Mount::is_child_process) |
//! | [`mnt_context_is_fake`][70] | [`Mount::is_dry_run`](crate::mount::Mount::is_dry_run) <br> [`Unmount::is_dry_run`](crate::mount::Unmount::is_dry_run) |
//! | [`mnt_context_is_force`][71] | [`Unmount::forces_unmount`](crate::mount::Unmount::forces_unmount) |
//! | [`mnt_context_is_fork`][72] | [`Mount::does_parallel_mount`](crate::mount::Mount::does_parallel_mount) |
//! | [`mnt_context_is_fs_mounted`][73] | [`Mount::is_entry_mounted`](crate::mount::Mount::is_entry_mounted) |
//! | [`mnt_context_is_lazy`][74] | [`Unmount::does_lazy_unmount`](crate::mount::Unmount::does_lazy_unmount) |
//! | [`mnt_context_is_loopdel`][75] | [`Unmount::detaches_loop_device`](crate::mount::Unmount::detaches_loop_device) |
//! | [`mnt_context_is_nocanonicalize`][76] | [`Mount::disabled_path_canonicalization`](crate::mount::Mount::disabled_path_canonicalization) <br> [`Unmount::disabled_path_canonicalization`](crate::mount::Unmount::disabled_path_canonicalization) |
//! | [`mnt_context_is_nohelpers`][77] | [`Mount::has_disabled_helpers`](crate::mount::Mount::has_disabled_helpers) <br> [`Unmount::has_disabled_helpers`](crate::mount::Unmount::has_disabled_helpers) |
//! | [`mnt_context_is_nomtab`][78] | [`Mount::does_not_update_utab`](crate::mount::Mount::does_not_update_utab) <br> [`Unmount::does_not_update_utab`](crate::mount::Unmount::does_not_update_utab) |
//! | [`mnt_context_is_onlyonce`][79] | [`Mount::mounts_only_once`](crate::mount::Mount::mounts_only_once) |
//! | [`mnt_context_is_parent`][80] | [`Mount::is_parent_process`](crate::mount::Mount::is_parent_process) |
//! | [`mnt_context_is_rdonly_umount`][81] | [`Unmount::on_fail_remounts_read_only`](crate::mount::Unmount::on_fail_remounts_read_only) |
//! | [`mnt_context_is_restricted`][82] | [`Mount::is_user_mount`](crate::mount::Mount::is_user_mount) |
//! | [`mnt_context_is_rwonly_mount`][83] | [`Mount::forces_mount_read_write`](crate::mount::Mount::forces_mount_read_write) |
//! | [`mnt_context_is_sloppy`][84] | [`Mount::ignores_unsupported_mount_options`](crate::mount::Mount::ignores_unsupported_mount_options) |
//! | [`mnt_context_is_swapmatch`][85] | [`Mount::disabled_mount_point_lookup`](crate::mount::Mount::disabled_mount_point_lookup) |
//! | [`mnt_context_is_verbose`][86] | [`Mount::is_verbose`](crate::mount::Mount::is_verbose) <br> [`Unmount::is_verbose`](crate::mount::Unmount::is_verbose) |
//! | [`mnt_context_reset_status`][87] | [`Mount::reset_syscall_exit_status`](crate::mount::Mount::reset_syscall_exit_status) <br> [`Unmount::reset_syscall_exit_status`](crate::mount::Unmount::reset_syscall_exit_status) |
//! | [`mnt_context_set_cache`][88] | [`MountBuilder::override_cache`](crate::mount::MountBuilder::override_cache) |
//! | [`mnt_context_set_fs`][89] | Not implemented. |
//! | [`mnt_context_set_fstab`][90] | [`MountBuilder::override_fstab`](crate::mount::MountBuilder::override_fstab) |
//! | [`mnt_context_set_fstype`][91] | [`MountBuilder::file_system`](crate::mount::MountBuilder::file_system) |
//! | [`mnt_context_set_fstype_pattern`][92] | [`MountBuilder::match_file_systems`](crate::mount::MountBuilder::match_file_systems) <br> [`UnmountBuilder::match_file_systems`](crate::mount::UnmountBuilder::match_file_systems) |
//! | [`mnt_context_set_mflags`][93] | [`MountBuilder::mount_flags`](crate::mount::MountBuilder::mount_flags) |
//! | [`mnt_context_set_mountdata`][94] | [`MountBuilder::mount_data`](crate::mount::MountBuilder::mount_data) |
//! | [`mnt_context_set_options`][95] | [`MountBuilder::mount_options`](crate::mount::MountBuilder::mount_options) |
//! | [`mnt_context_set_options_pattern`][96] | [`MountBuilder::match_mount_options`](crate::mount::MountBuilder::match_mount_options) <br> [`UnmountBuilder::match_mount_options`](crate::mount::UnmountBuilder::match_mount_options) |
//! | [`mnt_context_set_optsmode`][97] | [`MountBuilder::mount_options_mode`](crate::mount::MountBuilder::mount_options_mode) |
//! | [`mnt_context_set_passwd_cb`][98] | Deprecated. |
//! | [`mnt_context_set_source`][99] | [`MountBuilder::source`](crate::mount::MountBuilder::source) <br> [`UnmountBuilder::source`](crate::mount::UnmountBuilder::source) |
//! | [`mnt_context_set_syscall_status`][100] | [`Mount::set_syscall_exit_status`](crate::mount::Mount::set_syscall_exit_status) <br> [`Unmount::set_syscall_exit_status`](crate::mount::Unmount::set_syscall_exit_status) |
//! | [`mnt_context_set_tables_errcb`][101] | Can not implement it without a data pointer in the callback function see [Passing Rust closure to C](http://blog.sagetheprogrammer.com/neat-rust-tricks-passing-rust-closures-to-c) |
//! | [`mnt_context_set_target`][102] | [`MountBuilder::target`](crate::mount::MountBuilder::target) <br> [`UnmountBuilder::target`](crate::mount::UnmountBuilder::target) |
//! | [`mnt_context_set_target_ns`][103] | [`MountBuilder::target_namespace`](crate::mount::MountBuilder::target_namespace) <br> [`UnmountBuilder::target_namespace`](crate::mount::UnmountBuilder::target_namespace) |
//! | [`mnt_context_set_target_prefix`][104] | [`MountBuilder::target_prefix`](crate::mount::MountBuilder::target_prefix) |
//! | [`mnt_context_set_user_mflags`][105] | [`MountBuilder::userspace_mount_flags`](crate::mount::MountBuilder::userspace_mount_flags) |
//! | [`mnt_context_strerror`][106] | Deprecated. |
//! | [`mnt_context_switch_ns`][107] | [`Mount::switch_to_namespace`](crate::mount::Mount::switch_to_namespace) <br> [`Unmount::switch_to_namespace`](crate::mount::Unmount::switch_to_namespace) |
//! | [`mnt_context_switch_origin_ns`][108] | [`Mount::switch_to_original_namespace`](crate::mount::Mount::switch_to_original_namespace) <br> [`Unmount::switch_to_original_namespace`](crate::mount::Unmount::switch_to_original_namespace) |
//! | [`mnt_context_switch_target_ns`][109] | [`Mount::switch_to_target_namespace`](crate::mount::Mount::switch_to_target_namespace) <br> [`Unmount::switch_to_target_namespace`](crate::mount::Unmount::switch_to_target_namespace) |
//! | [`mnt_context_syscall_called`][110] | [`Mount::has_called_mount_syscall`](crate::mount::Mount::has_called_mount_syscall) <br> [`Unmount::has_called_umount_syscall`](crate::mount::Unmount::has_called_umount_syscall) |
//! | [`mnt_context_tab_applied`][111] | |
//! | [`mnt_context_wait_for_children`][112] | [`Mount::wait_on_children`](crate::mount::Mount::wait_on_children) |
//!
//! [1]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#libmnt-context
//! [2]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#libmnt-ns
//! [3]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-AMBIFS:CAPS
//! [4]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-APPLYFLAGS:CAPS
//! [5]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-LOOPDEV:CAPS
//! [6]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-MOUNTOPT:CAPS
//! [7]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-NOFSTAB:CAPS
//! [8]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-NOFSTYPE:CAPS
//! [9]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-NOSOURCE:CAPS
//! [10]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-LOOPOVERLAP:CAPS
//! [11]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-LOCK:CAPS
//! [12]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-ERR-NAMESPACE:CAPS
//! [13]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-EX-SUCCESS:CAPS
//! [14]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-EX-USAGE:CAPS
//! [15]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-EX-SYSERR:CAPS
//! [16]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-EX-SOFTWARE:CAPS
//! [17]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-EX-USER:CAPS
//! [18]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-EX-FILEIO:CAPS
//! [19]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-EX-FAIL:CAPS
//! [20]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#MNT-EX-SOMEOK:CAPS
//! [21]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-free-context
//! [22]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-new-context
//! [23]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-reset-context
//! [24]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-append-options
//! [25]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-apply-fstab
//! [26]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-disable-canonicalize
//! [27]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-disable-helpers
//! [28]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-disable-mtab
//! [29]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-disable-swapmatch
//! [30]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-fake
//! [31]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-force
//! [32]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-fork
//! [33]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-lazy
//! [34]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-loopdel
//! [35]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-noautofs
//! [36]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-onlyonce
//! [37]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-rdonly-umount
//! [38]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-rwonly-mount
//! [39]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-sloppy
//! [40]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-enable-verbose
//! [41]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-forced-rdonly
//! [42]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-force-unrestricted
//! [43]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-cache
//! [44]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-excode
//! [45]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-fs
//! [46]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-fstab
//! [47]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-fstab-userdata
//! [48]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-fstype
//! [49]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-fs-userdata
//! [50]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-helper-status
//! [51]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-lock
//! [52]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-mflags
//! [53]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-mtab
//! [54]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-mtab-userdata
//! [55]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-options
//! [56]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-optsmode
//! [57]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-origin-ns
//! [58]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-source
//! [59]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-status
//! [60]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-syscall-errno
//! [61]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-table
//! [62]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-target
//! [63]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-target-ns
//! [64]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-target-prefix
//! [65]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-get-user-mflags
//! [66]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-helper-executed
//! [67]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-helper-setopt
//! [68]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-init-helper
//! [69]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-child
//! [70]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-fake
//! [71]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-force
//! [72]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-fork
//! [73]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-fs-mounted
//! [74]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-lazy
//! [75]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-loopdel
//! [76]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-nocanonicalize
//! [77]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-nohelpers
//! [78]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-nomtab
//! [79]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-onlyonce
//! [80]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-parent
//! [81]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-rdonly-umount
//! [82]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-restricted
//! [83]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-rwonly-mount
//! [84]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-sloppy
//! [85]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-swapmatch
//! [86]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-is-verbose
//! [87]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-reset-status
//! [88]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-cache
//! [89]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-fs
//! [90]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-fstab
//! [91]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-fstype
//! [92]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-fstype-pattern
//! [93]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-mflags
//! [94]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-mountdata
//! [95]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-options
//! [96]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-options-pattern
//! [97]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-optsmode
//! [98]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-passwd-cb
//! [99]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-source
//! [100]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-syscall-status
//! [101]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-tables-errcb
//! [102]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-target
//! [103]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-target-ns
//! [104]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-target-prefix
//! [105]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-set-user-mflags
//! [106]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-strerror
//! [107]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-switch-ns
//! [108]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-switch-origin-ns
//! [109]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-switch-target-ns
//! [110]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-syscall-called
//! [111]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-tab-applied
//! [112]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-high-level-context.html#mnt-context-wait-for-children
//!
//! #### Mount context
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`MNT_MS_COMMENT`][113] | [`UserspaceMountFlag::Comment`](crate::core::flags::UserspaceMountFlag::Comment) |
//! | [`MNT_MS_GROUP`][114] | [`UserspaceMountFlag::Group`](crate::core::flags::UserspaceMountFlag::Group) |
//! | [`MNT_MS_HELPER`][115] | [`UserspaceMountFlag::MountHelper`](crate::core::flags::UserspaceMountFlag::MountHelper) |
//! | [`MNT_MS_LOOP`][116] | [`UserspaceMountFlag::LoopDevice`](crate::core::flags::UserspaceMountFlag::LoopDevice) |
//! | [`MNT_MS_NETDEV`][117] | [`UserspaceMountFlag::DeviceRequiresNetwork`](crate::core::flags::UserspaceMountFlag::DeviceRequiresNetwork) |
//! | [`MNT_MS_NOAUTO`][118] | [`UserspaceMountFlag::NoAuto`](crate::core::flags::UserspaceMountFlag::NoAuto) |
//! | [`MNT_MS_NOFAIL`][119] | [`UserspaceMountFlag::NoFail`](crate::core::flags::UserspaceMountFlag::NoFail) |
//! | [`MNT_MS_OFFSET`][120] | [`UserspaceMountFlag::LoopDeviceOffset`](crate::core::flags::UserspaceMountFlag::LoopDeviceOffset) |
//! | [`MNT_MS_OWNER`][121] | [`UserspaceMountFlag::Owner`](crate::core::flags::UserspaceMountFlag::Owner) |
//! | [`MNT_MS_SIZELIMIT`][122] | [`UserspaceMountFlag::LoopDeviceSizeLimit`](crate::core::flags::UserspaceMountFlag::LoopDeviceSizeLimit) |
//! | [`MNT_MS_ENCRYPTION`][123] | [`UserspaceMountFlag::LoopDeviceEncryption`](crate::core::flags::UserspaceMountFlag::LoopDeviceEncryption) |
//! | [`MNT_MS_UHELPER`][124] | [`UserspaceMountFlag::UmountHelper`](crate::core::flags::UserspaceMountFlag::UmountHelper) |
//! | [`MNT_MS_USER`][125] | [`UserspaceMountFlag::User`](crate::core::flags::UserspaceMountFlag::User) |
//! | [`MNT_MS_USERS`][126] | [`UserspaceMountFlag::Users`](crate::core::flags::UserspaceMountFlag::Users) |
//! | [`MNT_MS_XCOMMENT`][127] | [`UserspaceMountFlag::XUTabComment`](crate::core::flags::UserspaceMountFlag::XUTabComment) |
//! | [`MNT_MS_XFSTABCOMM`][128] | [`UserspaceMountFlag::XFstabComment`](crate::core::flags::UserspaceMountFlag::XFstabComment) |
//! | [`MNT_MS_HASH_DEVICE`][129] | [`UserspaceMountFlag::HashDevice`](crate::core::flags::UserspaceMountFlag::HashDevice) |
//! | [`MNT_MS_ROOT_HASH`][130] | [`UserspaceMountFlag::RootHash`](crate::core::flags::UserspaceMountFlag::RootHash) |
//! | [`MNT_MS_HASH_OFFSET`][131] | [`UserspaceMountFlag::HashOffset`](crate::core::flags::UserspaceMountFlag::HashOffset) |
//! | [`MNT_MS_ROOT_HASH_FILE`][132] | [`UserspaceMountFlag::RootHashFile`](crate::core::flags::UserspaceMountFlag::RootHashFile) |
//! | [`MNT_MS_FEC_DEVICE`][133] | [`UserspaceMountFlag::ForwardErrorCorrectionDevice`](crate::core::flags::UserspaceMountFlag::ForwardErrorCorrectionDevice) |
//! | [`MNT_MS_FEC_OFFSET`][134] | [`UserspaceMountFlag::ForwardErrorCorrectionOffset`](crate::core::flags::UserspaceMountFlag::ForwardErrorCorrectionOffset) |
//! | [`MNT_MS_FEC_ROOTS`][135] | [`UserspaceMountFlag::ForwardErrorCorrectionRoots`](crate::core::flags::UserspaceMountFlag::ForwardErrorCorrectionRoots) |
//! | [`MNT_MS_ROOT_HASH_SIG`][136] | [`UserspaceMountFlag::RootHashSignature`](crate::core::flags::UserspaceMountFlag::RootHashSignature) |
//! | [`MS_BIND`][137] | [`MountFlag::Bind`](crate::core::flags::MountFlag::Bind) |
//! | [`MS_DIRSYNC`][138] | [`MountFlag::SynchronizeDirectories`](crate::core::flags::MountFlag::SynchronizeDirectories) |
//! | [`MS_I_VERSION`][139] | [`MountFlag::IVersion`](crate::core::flags::MountFlag::IVersion) |
//! | [`MS_MANDLOCK`][140] | [`MountFlag::MandatoryLocking`](crate::core::flags::MountFlag::MandatoryLocking) |
//! | [`MS_MGC_MSK`][141] | [`MountFlag::MagicMask`](crate::core::flags::MountFlag::MagicMask) |
//! | [`MS_MGC_VAL`][142] | [`MountFlag::MagicValue`](crate::core::flags::MountFlag::MagicValue) |
//! | [`MS_MOVE`][143] | [`MountFlag::Move`](crate::core::flags::MountFlag::Move) |
//! | [`MS_NOATIME`][144] | [`MountFlag::NoUpdateAccessTime`](crate::core::flags::MountFlag::NoUpdateAccessTime) |
//! | [`MS_NODEV`][145] | [`MountFlag::NoDeviceAccess`](crate::core::flags::MountFlag::NoDeviceAccess) |
//! | [`MS_NODIRATIME`][146] | [`MountFlag::NoUpdateDirectoryAccessTime`](crate::core::flags::MountFlag::NoUpdateDirectoryAccessTime) |
//! | [`MS_NOEXEC`][147] | [`MountFlag::NoExecute`](crate::core::flags::MountFlag::NoExecute) |
//! | [`MS_NOSUID`][148] | [`MountFlag::NoSuid`](crate::core::flags::MountFlag::NoSuid) |
//! | [`MS_OWNERSECURE`][149] | [`MountFlag::OwnerSecure`](crate::core::flags::MountFlag::OwnerSecure) |
//! | [`MS_PRIVATE`][150] | [`MountFlag::Private`](crate::core::flags::MountFlag::Private) |
//! | [`MS_PROPAGATION`][151] | [`MountFlag::Propagation`](crate::core::flags::MountFlag::Propagation) |
//! | [`MS_RDONLY`][152] | [`MountFlag::ReadOnly`](crate::core::flags::MountFlag::ReadOnly) |
//! | [`MS_REC`][153] | [`MountFlag::Recursive`](crate::core::flags::MountFlag::Recursive) |
//! | [`MS_RELATIME`][154] | [`MountFlag::RelativeAcessTime`](crate::core::flags::MountFlag::RelativeAcessTime) |
//! | [`MS_REMOUNT`][155] | [`MountFlag::Remount`](crate::core::flags::MountFlag::Remount) |
//! | [`MS_SECURE`][156] | [`MountFlag::Secure`](crate::core::flags::MountFlag::Secure) |
//! | [`MS_SHARED`][157] | [`MountFlag::Shared`](crate::core::flags::MountFlag::Shared) |
//! | [`MS_SILENT`][158] | [`MountFlag::Silent`](crate::core::flags::MountFlag::Silent) |
//! | [`MS_SLAVE`][159] | [`MountFlag::Slave`](crate::core::flags::MountFlag::Slave) |
//! | [`MS_STRICTATIME`][160] | [`MountFlag::StrictUpdateAccessTime`](crate::core::flags::MountFlag::StrictUpdateAccessTime) |
//! | [`MS_SYNCHRONOUS`][161] | [`MountFlag::Synchronous`](crate::core::flags::MountFlag::Synchronous) |
//! | [`MS_UNBINDABLE`][162] | [`MountFlag::Unbindable`](crate::core::flags::MountFlag::Unbindable) |
//! | [`MS_LAZYTIME`][163] | [`MountFlag::LazyTime`](crate::core::flags::MountFlag::LazyTime) |
//! | [`mnt_context_do_mount`][164] | [`Mount::call_mount_syscall`](crate::mount::Mount::call_mount_syscall) |
//! | [`mnt_context_finalize_mount`][165] | [`Mount::finalize_mount`](crate::mount::Mount::finalize_mount) |
//! | [`mnt_context_mount`][166] | [`Mount::mount_device`](crate::mount::Mount::mount_device) |
//! | [`mnt_context_next_mount`][167] | [`Mount::seq_mount`](crate::mount::Mount::seq_mount) |
//! | [`mnt_context_next_remount`][168] | [`Mount::seq_remount`](crate::mount::Mount::seq_remount) |
//! | [`mnt_context_prepare_mount`][169] | [`Mount::prepare_mount`](crate::mount::Mount::prepare_mount) |
//!
//! [113]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-COMMENT:CAPS
//! [114]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-GROUP:CAPS
//! [115]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-HELPER:CAPS
//! [116]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-LOOP:CAPS
//! [117]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-NETDEV:CAPS
//! [118]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-NOAUTO:CAPS
//! [119]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-NOFAIL:CAPS
//! [120]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-OFFSET:CAPS
//! [121]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-OWNER:CAPS
//! [122]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-SIZELIMIT:CAPS
//! [123]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-ENCRYPTION:CAPS
//! [124]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-UHELPER:CAPS
//! [125]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-USER:CAPS
//! [126]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-USERS:CAPS
//! [127]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-XCOMMENT:CAPS
//! [128]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-XFSTABCOMM:CAPS
//! [129]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-HASH-DEVICE:CAPS
//! [130]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-ROOT-HASH:CAPS
//! [131]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-HASH-OFFSET:CAPS
//! [132]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-ROOT-HASH-FILE:CAPS
//! [133]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-FEC-DEVICE:CAPS
//! [134]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-FEC-OFFSET:CAPS
//! [135]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-FEC-ROOTS:CAPS
//! [136]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MNT-MS-ROOT-HASH-SIG:CAPS
//! [137]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-BIND:CAPS
//! [138]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-DIRSYNC:CAPS
//! [139]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-I-VERSION:CAPS
//! [140]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-MANDLOCK:CAPS
//! [141]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-MGC-MSK:CAPS
//! [142]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-MGC-VAL:CAPS
//! [143]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-MOVE:CAPS
//! [144]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-NOATIME:CAPS
//! [145]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-NODEV:CAPS
//! [146]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-NODIRATIME:CAPS
//! [147]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-NOEXEC:CAPS
//! [148]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-NOSUID:CAPS
//! [149]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-OWNERSECURE:CAPS
//! [150]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-PRIVATE:CAPS
//! [151]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-PROPAGATION:CAPS
//! [152]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-RDONLY:CAPS
//! [153]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-REC:CAPS
//! [154]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-RELATIME:CAPS
//! [155]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-REMOUNT:CAPS
//! [156]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-SECURE:CAPS
//! [157]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-SHARED:CAPS
//! [158]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-SILENT:CAPS
//! [159]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-SLAVE:CAPS
//! [160]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-STRICTATIME:CAPS
//! [161]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-SYNCHRONOUS:CAPS
//! [162]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-UNBINDABLE:CAPS
//! [163]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#MS-LAZYTIME:CAPS
//! [164]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#mnt-context-do-mount
//! [165]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#mnt-context-finalize-mount
//! [166]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#mnt-context-mount
//! [167]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#mnt-context-next-mount
//! [168]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#mnt-context-next-remount
//! [169]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Mount-context.html#mnt-context-prepare-mount
//!
//! #### Umount context
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`mnt_context_find_umount_fs`][170] | [`Mount::find_entry_matching_source`](crate::mount::Mount::find_entry_matching_source) <br> [`Mount::find_entry_matching_target`](crate::mount::Mount::find_entry_matching_target) <br> [`Mount::find_entry_matching_tag`](crate::mount::Mount::find_entry_matching_tag) |
//! | [`mnt_context_do_umount`][171] | [`Unmount::call_umount_syscall`](crate::mount::Unmount::call_umount_syscall) |
//! | [`mnt_context_finalize_umount`][172] | [`Unmount::finalize_umount`](crate::mount::Unmount::finalize_umount) |
//! | [`mnt_context_next_umount`][173] | [`Unmount`::seq_unmount](crate::mount::Unmount::seq_unmount) |
//! | [`mnt_context_prepare_umount`][174] | [`Unmount::prepare_unmount`](crate::mount::Unmount::prepare_unmount) |
//! | [`mnt_context_umount`][175] | [`Unmount::unmount_device`](crate::mount::Unmount::unmount_device) |
//!
//! [170]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Umount-context.html#mnt-context-find-umount-fs
//! [171]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Umount-context.html#mnt-context-do-umount
//! [172]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Umount-context.html#mnt-context-finalize-umount
//! [173]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Umount-context.html#mnt-context-next-umount
//! [174]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Umount-context.html#mnt-context-prepare-umount
//! [175]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Umount-context.html#mnt-context-umount
//!
//! ### Files parsing
//! #### Table of filesystems
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_table`][176] | [`FsTab`](crate::tables::FsTab) <br> [`MountInfo`](crate::tables::MountInfo) <br> [`Swaps`](crate::tables::Swaps) <br> [`UTab`](crate::tables::UTab) |
//! | [`mnt_free_table`][177] | [`FsTab`](crate::tables::FsTab), [`MountInfo`](crate::tables::MountInfo), [`Swaps`](crate::tables::Swaps), [`UTab`](crate::tables::UTab) are automatically deallocated when they go out of scope. |
//! | [`mnt_new_table`][178] | [`FsTab::new`](crate::tables::FsTab::new) <br> [`MountInfo::new`](crate::tables::MountInfo::new) <br> [`Swaps::new`](crate::tables::Swaps::new) <br> [`UTab::new`](crate::tables::UTab::new) |
//! | [`mnt_reset_table`][179] | [`FsTab::clear`](crate::tables::FsTab::clear) <br> [`UTab::clear`](crate::tables::UTab::clear) |
//! | [`mnt_ref_table`][180] | Managed automatically. |
//! | [`mnt_unref_table`][181] | Managed automatically. |
//! | [`mnt_new_table_from_dir`][182] | [`FsTab::new_from_directory`](crate::tables::FsTab::new_from_directory) |
//! | [`mnt_new_table_from_file`][183] | [`FsTab::new_from_file`](crate::tables::FsTab::new_from_file) |
//! | [`mnt_table_add_fs`][184] | [`FsTab::push`](crate::tables::FsTab::push) <br> [`FsTab::try_push`](crate::tables::FsTab::try_push) <br> [`UTab::push`](crate::tables::UTab::push) |
//! | [`mnt_table_append_intro_comment`][185] | [`FsTab::append_to_intro_comments`](crate::tables::FsTab::append_to_intro_comments) |
//! | [`mnt_table_append_trailing_comment`][186] | [`FsTab::append_to_trailing_comments`](crate::tables::FsTab::append_to_trailing_comments) |
//! | [`mnt_table_enable_comments`][187] | [`FsTab::import_with_comments`](crate::tables::FsTab::import_with_comments) <br> [`FsTab::import_without_comments`](crate::tables::FsTab::import_without_comments) <br> [`FsTab::export_with_comments`](crate::tables::FsTab::export_with_comments) <br> [`FsTab::export_without_comments`](crate::tables::FsTab::export_without_comments) |
//! | [`mnt_table_find_devno`][188] | [`MountInfo::find_device`](crate::tables::MountInfo::find_device) <br> [`MountInfo::find_back_device`](crate::tables::MountInfo::find_back_device) |
//! | [`mnt_table_find_fs`][189] | [`FsTab::contains`](crate::tables::FsTab::contains) <br> [`FsTab::position`](crate::tables::FsTab::position) <br> [`MountInfo::position`](crate::tables::MountInfo::position) <br> [`Swaps::position`](crate::tables::Swaps::position) <br> [`UTab::contains`](crate::tables::UTab::contains) <br> [`UTab::position`](crate::tables::UTab::position) |
//! | [`mnt_table_find_mountpoint`][190] | [`MountInfo::find_mount_point`](crate::tables::MountInfo::find_mount_point) <br> [`MountInfo::find_back_mount_point`](crate::tables::MountInfo::find_back_mount_point) |
//! | [`mnt_table_find_next_fs`][191] | [`FsTab::find_first`](crate::tables::FsTab::find_first) <br> [`FsTab::find_back_first`](crate::tables::FsTab::find_back_first) <br> [`MountInfo::find_first`](crate::tables::MountInfo::find_first) <br> [`MountInfo::find_back_first`](crate::tables::MountInfo::find_back_first) <br> [`Swaps::find_first`](crate::tables::Swaps::find_first) <br> [`Swaps::find_back_first`](crate::tables::Swaps::find_back_first) <br> [`UTab::find_first`](crate::tables::UTab::find_first) <br> [`UTab::find_back_first`](crate::tables::UTab::find_back_first) |
//! | [`mnt_table_find_pair`][192] | [`FsTab::find_pair`](crate::tables::FsTab::find_pair) <br> [`FsTab::find_back_pair`](crate::tables::FsTab::find_back_pair) <br> [`MountInfo::find_pair`](crate::tables::MountInfo::find_pair) <br> [`MountInfo::find_back_pair`](crate::tables::MountInfo::find_back_pair) <br> [`UTab::find_pair`](crate::tables::UTab::find_pair) <br> [`UTab::find_back_pair`](crate::tables::UTab::find_back_pair) |
//! | [`mnt_table_find_source`][193] | [`FsTab::find_source`](crate::tables::FsTab::find_source) <br> [`FsTab::find_back_source`](crate::tables::FsTab::find_back_source) <br> [`MountInfo::find_source`](crate::tables::MountInfo::find_source) <br> [`MountInfo::find_back_source`](crate::tables::MountInfo::find_back_source) <br> [`Swaps::find_source`](crate::tables::Swaps::find_source) <br> [`Swaps::find_back_source`](crate::tables::Swaps::find_back_source) <br> [`UTab::find_source`](crate::tables::UTab::find_source) <br> [`UTab::find_back_source`](crate::tables::UTab::find_back_source) |
//! | [`mnt_table_find_srcpath`][194] | [`FsTab::find_source_path`](crate::tables::FsTab::find_source_path) <br> [`FsTab::find_back_source_path`](crate::tables::FsTab::find_back_source_path) <br> [`MountInfo::find_source_path`](crate::tables::MountInfo::find_source_path) <br> [`MountInfo::find_back_source_path`](crate::tables::MountInfo::find_back_source_path) <br> [`Swaps::find_source_path`](crate::tables::Swaps::find_source_path) <br> [`Swaps::find_back_source_path`](crate::tables::Swaps::find_back_source_path) <br> [`UTab::find_source_path`](crate::tables::UTab::find_source_path) <br> [`UTab::find_back_source_path`](crate::tables::UTab::find_back_source_path) |
//! | [`mnt_table_find_tag`][195] | [`FsTab::find_source_tag`](crate::tables::FsTab::find_source_tag) <br> [`FsTab::find_back_source_tag`](crate::tables::FsTab::find_back_source_tag) |
//! | [`mnt_table_find_target`][196] | [`FsTab::find_target`](crate::tables::FsTab::find_target) <br> [`FsTab::find_back_target`](crate::tables::FsTab::find_back_target) <br> [`MountInfo::find_target`](crate::tables::MountInfo::find_target) <br> [`MountInfo::find_back_target`](crate::tables::MountInfo::find_back_target) <br> [`UTab::find_target`](crate::tables::UTab::find_target) <br> [`UTab::find_back_target`](crate::tables::UTab::find_back_target) |
//! | [`mnt_table_find_target_with_option`][197] | [`FsTab::find_target_with_option`](crate::tables::FsTab::find_target_with_option) <br> [`FsTab::find_back_target_with_option`](crate::tables::FsTab::find_back_target_with_option) <br> [`FsTab::find_target_with_exact_option`](crate::tables::FsTab::find_target_with_exact_option) <br> [`FsTab::find_back_target_with_exact_option`](crate::tables::FsTab::find_back_target_with_exact_option) <br> [`MountInfo::find_target_with_option`](crate::tables::MountInfo::find_target_with_option) <br> [`MountInfo::find_back_target_with_option`](crate::tables::MountInfo::find_back_target_with_option) <br> [`MountInfo::find_target_with_exact_option`](crate::tables::MountInfo::find_target_with_exact_option) <br> [`MountInfo::find_back_target_with_exact_option`](crate::tables::MountInfo::find_back_target_with_exact_option) <br> [`UTab::find_target_with_option`](crate::tables::UTab::find_target_with_option) <br> [`UTab::find_back_target_with_option`](crate::tables::UTab::find_back_target_with_option) <br> [`UTab::find_target_with_exact_option`](crate::tables::UTab::find_target_with_exact_option) <br> [`UTab::find_back_target_with_exact_option`](crate::tables::UTab::find_back_target_with_exact_option) |
//! | [`mnt_table_first_fs`][198] | [`FsTab::first`](crate::tables::FsTab::first) <br> [`MountInfo::first`](crate::tables::MountInfo::first) <br> [`Swaps::first`](crate::tables::Swaps::first)<br> [`UTab::first`](crate::tables::UTab::first) |
//! | [`mnt_table_get_cache`][199] | [`FsTab::cache`](crate::tables::FsTab::cache) <br> [`MountInfo::cache`](crate::tables::MountInfo::cache) <br> [`Swaps::cache`](crate::tables::Swaps::cache) <br> [`UTab::cache`](crate::tables::UTab::cache) |
//! | [`mnt_table_get_intro_comment`][200] | [`FsTab::intro_comments`](crate::tables::FsTab::intro_comments) |
//! | [`mnt_table_get_nents`][201] | [`FsTab::len`](crate::tables::FsTab::len) <br> [`MountInfo::len`](crate::tables::MountInfo::len) <br> [`Swaps::len`](crate::tables::Swaps::len) <br> [`UTab::len`](crate::tables::UTab::len) |
//! | [`mnt_table_get_root_fs`][202] | [`MountInfo::root`](crate::tables::MountInfo::root) |
//! | [`mnt_table_get_trailing_comment`][203] | [`FsTab::trailing_comments`](crate::tables::FsTab::trailing_comments) |
//! | [`mnt_table_get_userdata`][204] | Managed internally. |
//! | [`mnt_table_insert_fs`][205] | [`FsTab::push_front`](crate::tables::FsTab::push_front) <br> [`FsTab::try_push_front`](crate::tables::FsTab::try_push_front) <br> [`FsTab::insert`](crate::tables::FsTab::insert) <br> [`FsTab::try_insert`](crate::tables::FsTab::try_insert) <br> [`UTab::push_front`](crate::tables::UTab::push_front) <br> [`UTab::insert`](crate::tables::UTab::insert) |
//! | [`mnt_table_is_empty`][206] | [`FsTab::is_empty`](crate::tables::FsTab::is_empty) <br> [`MountInfo::is_empty`](crate::tables::MountInfo::is_empty) <br> [`Swaps::is_empty`](crate::tables::Swaps::is_empty) <br> [`UTab::is_empty`](crate::tables::UTab::is_empty) |
//! | [`mnt_table_is_fs_mounted`][207] | [`MountInfo::is_mounted`](crate::tables::MountInfo::is_mounted) |
//! | [`mnt_table_last_fs`][208] | [`FsTab::last`](crate::tables::FsTab::last) <br> [`MountInfo::last`](crate::tables::MountInfo::last) <br> [`Swaps::last`](crate::tables::Swaps::last) <br> [`UTab::last`](crate::tables::UTab::last) |
//! | [`mnt_table_move_fs`][209] | [`FsTab::transfer`](crate::tables::FsTab::transfer) <br> [`UTab::transfer`](crate::tables::UTab::transfer) |
//! | [`mnt_table_next_child_fs`][210] | [`MountInfo::iter_children`](crate::tables::MountInfo::iter_children) <br> [`MountInfo::try_iter_children`](crate::tables::MountInfo::try_iter_children) |
//! | [`mnt_table_next_fs`][211] | [`FsTab::iter`](crate::tables::FsTab::iter) <br> [`FsTab::try_iter`](crate::tables::FsTab::try_iter) <br> [`FsTab::iter_mut`](crate::tables::FsTab::iter_mut) <br> [`FsTab::try_iter_mut`](crate::tables::FsTab::try_iter_mut) <br> [`MountInfo::iter`](crate::tables::MountInfo::iter) <br> [`MountInfo::try_iter`](crate::tables::MountInfo::try_iter) <br> [`Swaps::iter`](crate::tables::Swaps::iter) <br> [`Swaps::try_iter`](crate::tables::Swaps::try_iter) <br> [`UTab::iter`](crate::tables::UTab::iter) <br> [`UTab::try_iter`](crate::tables::UTab::try_iter) <br> [`UTab::iter_mut`](crate::tables::UTab::iter_mut) <br> [`UTab::try_iter_mut`](crate::tables::UTab::try_iter_mut) |
//! | [`mnt_table_over_fs`][212] | [`MountInfo::iter_overmounts`](crate::tables::MountInfo::iter_overmounts) |
//! | [`mnt_table_parse_dir`][213] | [`FsTab::import_directory`](crate::tables::FsTab::import_directory) |
//! | [`mnt_table_parse_file`][214] | [`FsTab::import_file`](crate::tables::FsTab::import_file) |
//! | [`mnt_table_parse_fstab`][215] | [`FsTab::import_etc_fstab`](crate::tables::FsTab::import_etc_fstab) |
//! | [`mnt_table_parse_mtab`][216] | [`MountInfo::import_mountinfo`](crate::tables::MountInfo::import_mountinfo) |
//! | [`mnt_table_parse_stream`][217] | [`FsTab::import_from_stream`](crate::tables::FsTab::import_from_stream) |
//! | [`mnt_table_parse_swaps`][218] | [`Swaps::import_proc_swaps`](crate::tables::Swaps::import_proc_swaps) |
//! | [`mnt_table_remove_fs`][219] | [`FsTab::remove`](crate::tables::FsTab::remove) <br> [`UTab::remove`](crate::tables::UTab::remove) |
//! | [`mnt_table_set_cache`][220] | [`FsTab::set_cache`](crate::tables::FsTab::set_cache) <br> [`MountInfo::set_cache`](crate::tables::MountInfo::set_cache) <br> [`Swaps::set_cache`](crate::tables::Swaps::set_cache) <br> [`UTab::set_cache`](crate::tables::UTab::set_cache) |
//! | [`mnt_table_set_intro_comment`][221] | [`FsTab::set_intro_comments`](crate::tables::FsTab::set_intro_comments) |
//! | [`mnt_table_set_iter`][222] | [`FsTabIter::advance_to`](crate::core::iter::FsTabIter::advance_to) <br> [`FsTabIterMut::advance_to`](crate::core::iter::FsTabIterMut::advance_to) <br> [`MountInfoIter::advance_to`](crate::core::iter::MountInfoIter::advance_to) <br> [`SwapsIter::advance_to`](crate::core::iter::SwapsIter::advance_to) <br> [`UTabIter::advance_to`](crate::core::iter::UTabIter::advance_to) <br> [`UTabIterMut::advance_to`](crate::core::iter::UTabIterMut::advance_to) |
//! | [`mnt_table_set_parser_errcb`][223] | [`FsTab::set_parser_error_handler`](crate::tables::FsTab::set_parser_error_handler) <br> [`MountInfo::set_parser_error_handler`](crate::tables::MountInfo::set_parser_error_handler) <br> [`Swaps::set_parser_error_handler`](crate::tables::Swaps::set_parser_error_handler) <br> [`UTab::set_parser_error_handler`](crate::tables::UTab::set_parser_error_handler) |
//! | [`mnt_table_set_trailing_comment`][224] | [`FsTab::set_trailing_comments`](crate::tables::FsTab::set_trailing_comments) |
//! | [`mnt_table_set_userdata`][225] | Managed internally. |
//! | [`mnt_table_uniq_fs`][226] | [`FsTab::dedup_first_by`](crate::tables::FsTab::dedup_first_by) <br> [`FsTab::dedup_last_by`](crate::tables::FsTab::dedup_last_by) <br> [`MountInfo::dedup_first_by`](crate::tables::FsTab::dedup_first_by) <br> [`MountInfo::dedup_last_by`](crate::tables::MountInfo::dedup_last_by) <br> [`MountInfo::distinct_first_by`](crate::tables::MountInfo::distinct_first_by) <br> [`MountInfo::distinct_last_by`](crate::tables::MountInfo::distinct_last_by) <br> [`Swaps::dedup_first_by`](crate::tables::Swaps::dedup_first_by) <br> [`Swaps::dedup_last_by`](crate::tables::Swaps::dedup_last_by) <br> [`UTab::dedup_first_by`](crate::tables::UTab::dedup_first_by) <br> [`UTab::dedup_last_by`](crate::tables::UTab::dedup_last_by) |
//! | [`mnt_table_with_comments`][227] | [`FsTab::is_importing_comments`](crate::tables::FsTab::is_importing_comments) <br> [`FsTab::is_exporting_comments`](crate::tables::FsTab::is_exporting_comments) |
//!
//! [176]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#libmnt-table
//! [177]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-free-table
//! [178]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-new-table
//! [179]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-reset-table
//! [180]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-ref-table
//! [181]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-unref-table
//! [182]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-new-table-from-dir
//! [183]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-new-table-from-file
//! [184]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-add-fs
//! [185]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-append-intro-comment
//! [186]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-append-trailing-comment
//! [187]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-enable-comments
//! [188]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-devno
//! [189]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-fs
//! [190]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-mountpoint
//! [191]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-next-fs
//! [192]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-pair
//! [193]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-source
//! [194]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-srcpath
//! [195]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-tag
//! [196]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-target
//! [197]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-find-target-with-option
//! [198]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-first-fs
//! [199]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-get-cache
//! [200]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-get-intro-comment
//! [201]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-get-nents
//! [202]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-get-root-fs
//! [203]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-get-trailing-comment
//! [204]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-get-userdata
//! [205]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-insert-fs
//! [206]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-is-empty
//! [207]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-is-fs-mounted
//! [208]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-last-fs
//! [209]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-move-fs
//! [210]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-next-child-fs
//! [211]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-next-fs
//! [212]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-over-fs
//! [213]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-parse-dir
//! [214]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-parse-file
//! [215]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-parse-fstab
//! [216]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-parse-mtab
//! [217]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-parse-stream
//! [218]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-parse-swaps
//! [219]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-remove-fs
//! [220]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-set-cache
//! [221]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-set-intro-comment
//! [222]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-set-iter
//! [223]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-set-parser-errcb
//! [224]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-set-trailing-comment
//! [225]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-set-userdata
//! [226]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-uniq-fs
//! [227]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Table-of-filesystems.html#mnt-table-with-comments
//!
//! #### Filesystem
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_fs`][228] | [`FsTabEntry`](crate::core::entries::FsTabEntry) <br> [`MountInfoEntry`](crate::core::entries::MountInfoEntry) <br> [`SwapsEntry`](crate::core::entries::SwapsEntry) <br> [`UTabEntry`](crate::core::entries::UTabEntry) |
//! | [`mnt_copy_fs`][229] | [`FsTabEntry::complete`](crate::core::entries::FsTabEntry::complete) <br> [`FsTabEntry::copy`](crate::core::entries::FsTabEntry::copy) <br> [`MountInfoEntry::copy`](crate::core::entries::MountInfoEntry::copy) <br> [`SwapsEntry::copy`](crate::core::entries::SwapsEntry::copy) <br> [`UTabEntry::complete`](crate::core::entries::UTabEntry::complete) <br> [`UTabEntry::copy`](crate::core::entries::UTabEntry::copy) |
//! | [`mnt_free_fs`][230] | [`FsTabEntry`](crate::core::entries::FsTabEntry), [`MountInfoEntry`](crate::core::entries::MountInfoEntry), [`SwapsEntry`](crate::core::entries::SwapsEntry), [`UTabEntry`](crate::core::entries::UTabEntry) are automatically deallocated when they go out of scope. |
//! | [`mnt_free_mntent`][231] | [`MntEnt`](crate::core::entries::MntEnt) is automatically deallocated when it goes out of scope. |
//! | [`mnt_ref_fs`][232] | Managed automatically. |
//! | [`mnt_unref_fs`][233] | Managed automatically. |
//! | [`mnt_fs_append_attributes`][234] | [`UTabEntry::append_attributes`](crate::core::entries::UTabEntry::append_attributes) |
//! | [`mnt_fs_append_comment`][235] | [`FsTabEntry::append_comment`](crate::core::entries::FsTabEntry::append_comment) |
//! | [`mnt_fs_append_options`][236] | [`FsTabEntry::append_options`](crate::core::entries::FsTabEntry::append_options) |
//! | [`mnt_fs_get_attribute`][237] | [`UTabEntry::attribute_value`](crate::core::entries::UTabEntry::attribute_value) |
//! | [`mnt_fs_get_attributes`][238] | [`UTabEntry::attributes`](crate::core::entries::UTabEntry::attributes) |
//! | [`mnt_fs_get_bindsrc`][239] | [`UTabEntry::bind_source`](crate::core::entries::UTabEntry::bind_source) |
//! | [`mnt_fs_get_comment`][240] | [`FsTabEntry::comment`](crate::core::entries::FsTabEntry::comment) |
//! | [`mnt_fs_get_devno`][241] | [`MountInfoEntry::device_id`](crate::core::entries::MountInfoEntry::device_id) |
//! | [`mnt_fs_get_freq`][242] | [`FsTabEntry::backup_frequency`](crate::core::entries::FsTabEntry::backup_frequency) |
//! | [`mnt_fs_get_fs_options`][243] | [`MountInfoEntry::fs_specific_options`](crate::core::entries::MountInfoEntry::fs_specific_options) |
//! | [`mnt_fs_get_fstype`][244] | [`FsTabEntry::file_system_type`](crate::core::entries::FsTabEntry::file_system_type) <br> [`MountInfoEntry::file_system_type`](crate::core::entries::MountInfoEntry::file_system_type) |
//! | [`mnt_fs_get_id`][245] | [`MountInfoEntry::mount_id`](crate::core::entries::MountInfoEntry::mount_id) <br> [`UTabEntry::mount_id`](crate::core::entries::UTabEntry::mount_id) |
//! | [`mnt_fs_get_option`][246] | [`FsTabEntry::option_value`](crate::core::entries::FsTabEntry::option_value) |
//! | [`mnt_fs_get_optional_fields`][247] | [`MountInfoEntry::optional_fields`](crate::core::entries::MountInfoEntry::optional_fields) |
//! | [`mnt_fs_get_options`][248] | [`FsTabEntry::mount_options`](crate::core::entries::FsTabEntry::mount_options) |
//! | [`mnt_fs_get_parent_id`][249] | [`MountInfoEntry::parent_id`](crate::core::entries::MountInfoEntry::parent_id) |
//! | [`mnt_fs_get_passno`][250] | [`FsTabEntry::fsck_checking_order`](crate::core::entries::FsTabEntry::fsck_checking_order) |
//! | [`mnt_fs_get_priority`][251] | [`SwapsEntry::priority`](crate::core::entries::SwapsEntry::priority) |
//! | [`mnt_fs_get_propagation`][252] | [`MountInfoEntry::propagation_flags`](crate::core::entries::MountInfoEntry::propagation_flags) |
//! | [`mnt_fs_get_root`][253] | [`MountInfoEntry::root`](crate::core::entries::MountInfoEntry::root) <br> [`UTabEntry::root`](crate::core::entries::UTabEntry::root) |
//! | [`mnt_fs_get_size`][254] | [`SwapsEntry::size`](crate::core::entries::SwapsEntry::size) |
//! | [`mnt_fs_get_source`][255] | [`FsTabEntry::source`](crate::core::entries::FsTabEntry::source) |
//! | [`mnt_fs_get_srcpath`][256] | [`FsTabEntry::source_path`](crate::core::entries::FsTabEntry::source_path) <br> [`MountInfoEntry::source_path`](crate::core::entries::MountInfoEntry::source_path) <br> [`SwapsEntry::source_path`](crate::core::entries::SwapsEntry::source_path) <br> [`UTabEntry::source_path`](crate::core::entries::UTabEntry::source_path) |
//! | [`mnt_fs_get_swaptype`][257] | [`SwapsEntry::swap_type`](crate::core::entries::SwapsEntry::swap_type) |
//! | [`mnt_fs_get_tag`][258] | [`FsTabEntry::tag`](crate::core::entries::FsTabEntry::tag) |
//! | [`mnt_fs_get_table`][259] | Not implemented. |
//! | [`mnt_fs_get_target`][260] | [`FsTabEntry::target`](crate::core::entries::FsTabEntry::target) <br> [`MountInfoEntry::target`](crate::core::entries::MountInfoEntry::target) |
//! | [`mnt_fs_get_tid`][261] | [`MountInfoEntry::pid`](crate::core::entries::MountInfoEntry::pid) |
//! | [`mnt_fs_get_usedsize`][262] | [`SwapsEntry::size_used`](crate::core::entries::SwapsEntry::size_used) |
//! | [`mnt_fs_get_userdata`][263] | Managed internally. |
//! | [`mnt_fs_get_user_options`][264] | [`UTabEntry::mount_options`](crate::core::entries::UTabEntry::mount_options) |
//! | [`mnt_fs_get_vfs_options`][265] | [`MountInfoEntry::fs_independent_options`](crate::core::entries::MountInfoEntry::fs_independent_options) |
//! | [`mnt_fs_get_vfs_options_all`][266] | [`MountInfoEntry::fs_independent_options_full`](crate::core::entries::MountInfoEntry::fs_independent_options_full) |
//! | [`mnt_fs_is_kernel`][267] | [`FsTabEntry::is_from_kernel`](crate::core::entries::FsTabEntry::is_from_kernel) <br> [`MountInfoEntry::is_from_kernel`](crate::core::entries::MountInfoEntry::is_from_kernel) <br> [`SwapsEntry::is_from_kernel`](crate::core::entries::SwapsEntry::is_from_kernel) <br> [`UTabEntry::is_from_kernel`](crate::core::entries::UTabEntry::is_from_kernel) |
//! | [`mnt_fs_is_netfs`][268] | [`FsTabEntry::is_net_fs`](crate::core::entries::FsTabEntry::is_net_fs) <br> [`MountInfoEntry::is_net_fs`](crate::core::entries::MountInfoEntry::is_net_fs) <br> [`SwapsEntry::is_net_fs`](crate::core::entries::SwapsEntry::is_net_fs) <br> [`UTabEntry::is_net_fs`](crate::core::entries::UTabEntry::is_net_fs) |
//! | [`mnt_fs_is_pseudofs`][269] | [`FsTabEntry::is_pseudo_fs`](crate::core::entries::FsTabEntry::is_pseudo_fs) <br> [`MountInfoEntry::is_pseudo_fs`](crate::core::entries::MountInfoEntry::is_pseudo_fs) <br> [`SwapsEntry::is_pseudo_fs`](crate::core::entries::SwapsEntry::is_pseudo_fs) <br> [`UTabEntry::is_pseudo_fs`](crate::core::entries::UTabEntry::is_pseudo_fs) |
//! | [`mnt_fs_is_regularfs`][270] | [`FsTabEntry::is_regular_fs`](crate::core::entries::FsTabEntry::is_regular_fs) <br> [`MountInfoEntry::is_regular_fs`](crate::core::entries::MountInfoEntry::is_regular_fs) <br> [`SwapsEntry::is_regular_fs`](crate::core::entries::SwapsEntry::is_regular_fs) <br> [`UTabEntry::is_regular_fs`](crate::core::entries::UTabEntry::is_regular_fs) |
//! | [`mnt_fs_is_swaparea`][271] | [`FsTabEntry::is_swap`](crate::core::entries::FsTabEntry::is_swap) <br> [`MountInfoEntry::is_swap`](crate::core::entries::MountInfoEntry::is_swap) <br> [`SwapsEntry::is_swap`](crate::core::entries::SwapsEntry::is_swap) <br> [`UTabEntry::is_swap`](crate::core::entries::UTabEntry::is_swap) |
//! | [`mnt_fs_match_fstype`][272] | [`FsTabEntry::has_any_fs_type`](crate::core::entries::FsTabEntry::has_any_fs_type) <br> [`MountInfoEntry::has_any_fs_type`](crate::core::entries::MountInfoEntry::has_any_fs_type) |
//! | [`mnt_fs_match_options`][273] | [`FsTabEntry::has_any_option`](crate::core::entries::FsTabEntry::has_any_option) <br> [`UTabEntry::has_any_option`](crate::core::entries::UTabEntry::has_any_option) |
//! | [`mnt_fs_match_source`][274] | [`FsTabEntry::is_source`](crate::core::entries::FsTabEntry::is_source) <br> [`MountInfoEntry::is_source`](crate::core::entries::MountInfoEntry::is_source) <br> [`SwapsEntry::is_source`](crate::core::entries::SwapsEntry::is_source) <br> [`UTabEntry::is_source`](crate::core::entries::UTabEntry::is_source) |
//! | [`mnt_fs_match_target`][275] | [`FsTabEntry::is_target`](crate::core::entries::FsTabEntry::is_target) <br> [`MountInfoEntry::is_target`](crate::core::entries::MountInfoEntry::is_target) <br> [`UTabEntry::is_target`](crate::core::entries::UTabEntry::is_target) |
//! | [`mnt_fs_prepend_attributes`][276] | [`UTabEntry::prepend_attributes`](crate::core::entries::UTabEntry::prepend_attributes) |
//! | [`mnt_fs_prepend_options`][277] | [`FsTabEntry::prepend_options`](crate::core::entries::FsTabEntry::prepend_options) |
//! | [`mnt_fs_print_debug`][278] | [`FsTabEntry::print_debug_to`](crate::core::entries::FsTabEntry::print_debug_to) <br> [`MountInfoEntry::print_debug_to`](crate::core::entries::MountInfoEntry::print_debug_to) |
//! | [`mnt_fs_set_attributes`][279] | [`UTabEntry::set_attributes`](crate::core::entries::UTabEntry::set_attributes) |
//! | [`mnt_fs_set_bindsrc`][280] | [`UTabEntry::set_bind_source`](crate::core::entries::UTabEntry::set_bind_source) |
//! | [`mnt_fs_set_comment`][281] | [`FsTabEntry::set_comment`](crate::core::entries::FsTabEntry::set_comment) |
//! | [`mnt_fs_set_freq`][282] | [`FsTabEntry::set_backup_frequency`](crate::core::entries::FsTabEntry::set_backup_frequency) |
//! | [`mnt_fs_set_fstype`][283] | [`FsTabEntry::set_file_system_type`](crate::core::entries::FsTabEntry::set_file_system_type) |
//! | [`mnt_fs_set_options`][284] | [`FsTabEntry::set_mount_options`](crate::core::entries::FsTabEntry::set_mount_options) |
//! | [`mnt_fs_set_passno`][285] | [`FsTabEntry::set_fsck_checking_order`](crate::core::entries::FsTabEntry::set_fsck_checking_order) |
//! | [`mnt_fs_set_priority`][286] | [`SwapsEntry::set_priority`](crate::core::entries::SwapsEntry::set_priority) |
//! | [`mnt_fs_set_root`][287] | [`UTabEntry::set_root`](crate::core::entries::UTabEntry::set_root) |
//! | [`mnt_fs_set_source`][288] | [`FsTabEntry::set_source`](crate::core::entries::FsTabEntry::set_source) <br> [`UTabEntry::set_source_path`](crate::core::entries::UTabEntry::set_source_path) |
//! | [`mnt_fs_set_target`][289] | [`FsTabEntry::set_target`](crate::core::entries::FsTabEntry::set_target) |
//! | [`mnt_fs_set_userdata`][290] | Managed internally. |
//! | [`mnt_fs_strdup_options`][291] | [`MountInfoEntry::fs_options`](crate::core::entries::MountInfoEntry::fs_options) |
//! | [`mnt_fs_streq_srcpath`][292] | [`FsTabEntry::is_exact_source`](crate::core::entries::FsTabEntry::is_exact_source) <br> [`MountInfoEntry::is_exact_source`](crate::core::entries::MountInfoEntry::is_exact_source) <br> [`SwapsEntry::is_exact_source`](crate::core::entries::SwapsEntry::is_exact_source) <br> [`UTabEntry::is_exact_source`](crate::core::entries::UTabEntry::is_exact_source) |
//! | [`mnt_fs_streq_target`][293] | [`FsTabEntry::is_exact_target`](crate::core::entries::FsTabEntry::is_exact_target) <br> [`MountInfoEntry::is_exact_target`](crate::core::entries::MountInfoEntry::is_exact_target) <br> [`UTabEntry::is_exact_target`](crate::core::entries::UTabEntry::is_exact_target) |
//! | [`mnt_fs_to_mntent`][294] | [`FsTabEntry::to_mnt_ent`](crate::core::entries::FsTabEntry::to_mnt_ent) |
//! | [`mnt_new_fs`][295] | [`FsTabEntry::builder`](crate::core::entries::FsTabEntry::builder) |
//! | [`mnt_reset_fs`][296] | Not supported. |
//!
//! [228]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#libmnt-fs
//! [229]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-copy-fs
//! [230]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-free-fs
//! [231]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-free-mntent
//! [232]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-ref-fs
//! [233]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-unref-fs
//! [234]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-append-attributes
//! [235]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-append-comment
//! [236]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-append-options
//! [237]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-attribute
//! [238]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-attributes
//! [239]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-bindsrc
//! [240]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-comment
//! [241]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-devno
//! [242]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-freq
//! [243]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-fs-options
//! [244]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-fstype
//! [245]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-id
//! [246]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-option
//! [247]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-optional-fields
//! [248]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-options
//! [249]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-parent-id
//! [250]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-passno
//! [251]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-priority
//! [252]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-propagation
//! [253]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-root
//! [254]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-size
//! [255]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-source
//! [256]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-srcpath
//! [257]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-swaptype
//! [258]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-tag
//! [259]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-table
//! [260]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-target
//! [261]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-tid
//! [262]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-usedsize
//! [263]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-userdata
//! [264]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-user-options
//! [265]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-vfs-options
//! [266]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-get-vfs-options-all
//! [267]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-is-kernel
//! [268]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-is-netfs
//! [269]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-is-pseudofs
//! [270]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-is-regularfs
//! [271]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-is-swaparea
//! [272]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-match-fstype
//! [273]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-match-options
//! [274]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-match-source
//! [275]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-match-target
//! [276]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-prepend-attributes
//! [277]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-prepend-options
//! [278]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-print-debug
//! [279]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-attributes
//! [280]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-bindsrc
//! [281]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-comment
//! [282]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-freq
//! [283]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-fstype
//! [284]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-options
//! [285]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-passno
//! [286]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-priority
//! [287]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-root
//! [288]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-source
//! [289]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-target
//! [290]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-set-userdata
//! [291]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-strdup-options
//! [292]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-streq-srcpath
//! [293]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-streq-target
//! [294]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-fs-to-mntent
//! [295]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-new-fs
//! [296]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Filesystem.html#mnt-reset-fs
//!
//! ### Tables management
//! #### Locking
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_lock`][297] | [`FileLock`](crate::core::fs::FileLock) |
//! | [`mnt_free_lock`][298] | [`FileLock`](crate::core::fs::FileLock) is automatically deallocated when it goes out of scope. |
//! | [`mnt_lock_file`][299] | [`FileLock::lock`](crate::core::fs::FileLock::lock) |
//! | [`mnt_new_lock`][300] | [`FileLock::new`](crate::core::fs::FileLock::new) |
//! | [`mnt_unlock_file`][301] | [`FileLock::unlock`](crate::core::fs::FileLock::unlock) |
//! | [`mnt_lock_block_signals`][302] | [`FileLock::block_signals`](crate::core::fs::FileLock::block_signals) <br> [`FileLock::unblock_signals`](crate::core::fs::FileLock::unblock_signals) |
//!
//! [297]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Locking.html#libmnt-lock
//! [298]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Locking.html#mnt-free-lock
//! [299]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Locking.html#mnt-lock-file
//! [300]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Locking.html#mnt-new-lock
//! [301]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Locking.html#mnt-unlock-file
//! [302]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Locking.html#mnt-lock-block-signals
//!
//! #### Tables update
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_update`][303] | [`UtabManager`](crate::tables::UtabManager) |
//! | [`mnt_free_update`][304] | [`UtabManager`](crate::tables::UtabManager) is automatically deallocated when it goes out of scope. |
//! | [`mnt_new_update`][305] | [`UtabManager::new`](crate::tables::UtabManager::new) |
//! | [`mnt_table_replace_file`][306] | [`FsTab::write_file`](crate::tables::FsTab::write_file) |
//! | [`mnt_table_write_file`][307] | [`FsTab::write_stream`](crate::tables::FsTab::write_stream) |
//! | [`mnt_update_force_rdonly`][308] | [`UtabManager::enable_read_only`](crate::tables::UtabManager::enable_read_only)<br>[`UtabManager::disable_read_only`](crate::tables::UtabManager::disable_read_only) |
//! | [`mnt_update_get_filename`][309] | [`UtabManager::mount_table_file_name`](crate::tables::UtabManager::mount_table_file_name) |
//! | [`mnt_update_get_fs`][310] | [`UtabManager::table_entry`](crate::tables::UtabManager::table_entry) |
//! | [`mnt_update_get_mflags`][311] | [`UtabManager::mount_flags`](crate::tables::UtabManager::mount_flags) |
//! | [`mnt_update_is_ready`][312] | [`UtabManager::is_ready_for_update`](crate::tables::UtabManager::is_ready_for_update) |
//! | [`mnt_update_set_fs`][313] | [`UtabManager::set_mount_table_entry`](crate::tables::UtabManager::set_mount_table_entry)<br>[`UtabManager::set_umount_target`](crate::tables::UtabManager::set_umount_target) |
//! | [`mnt_update_table`][314] | [`UtabManager::update_mount_table`](crate::tables::UtabManager::update_mount_table)<br>[`UtabManager::lock_and_update_mount_table`](crate::tables::UtabManager::lock_and_update_mount_table) |
//!
//! [303]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#libmnt-update
//! [304]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-free-update
//! [305]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-new-update
//! [306]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-table-replace-file
//! [307]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-table-write-file
//! [308]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-update-force-rdonly
//! [309]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-update-get-filename
//! [310]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-update-get-fs
//! [311]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-update-get-mflags
//! [312]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-update-is-ready
//! [313]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-update-set-fs
//! [314]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Tables-update.html#mnt-update-table
//!
//! #### Monitor
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_monitor`][315] | [`TableMonitor`](crate::tables::TableMonitor) |
//! | [`mnt_new_monitor`][316] | [`TableMonitor::new`](crate::tables::TableMonitor::new) |
//! | [`mnt_ref_monitor`][317] | Managed automatically. |
//! | [`mnt_unref_monitor`][318] | Managed automatically. |
//! | [`mnt_monitor_enable_userspace`][319] | [`TableMonitor::watch_user_space`](crate::tables::TableMonitor::watch_user_space) <br> [`TableMonitor::watch_file`](crate::tables::TableMonitor::watch_file) <br> [`TableMonitor::unwatch_user_space`](crate::tables::TableMonitor::unwatch_user_space) |
//! | [`mnt_monitor_enable_kernel`][320] | [`TableMonitor::watch_kernel`](crate::tables::TableMonitor::watch_kernel) <br> [`TableMonitor::unwatch_kernel`](crate::tables::TableMonitor::unwatch_kernel) |
//! | [`mnt_monitor_get_fd`][321] | [`TableMonitor::event_notifier_create`](crate::tables::TableMonitor::event_notifier_create) |
//! | [`mnt_monitor_close_fd`][322] | [`TableMonitor::event_notifier_delete`](crate::tables::TableMonitor::event_notifier_delete) |
//! | [`mnt_monitor_next_change`][323] | [`TableMonitor::next_file_change`](crate::tables::TableMonitor::next_file_change) |
//! | [`mnt_monitor_event_cleanup`][324] | [`TableMonitor::discard_last_event`](crate::tables::TableMonitor::discard_last_event) |
//! | [`mnt_monitor_wait`][325] | [`TableMonitor::wait_for_next_change`](crate::tables::TableMonitor::wait_for_next_change) |
//!
//! [315]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#libmnt-monitor
//! [316]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-new-monitor
//! [317]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-ref-monitor
//! [318]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-unref-monitor
//! [319]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-monitor-enable-userspace
//! [320]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-monitor-enable-kernel
//! [321]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-monitor-get-fd
//! [322]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-monitor-close-fd
//! [323]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-monitor-next-change
//! [324]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-monitor-event-cleanup
//! [325]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Monitor.html#mnt-monitor-wait
//!
//! #### Compare changes in mount tables
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_tabdiff`][326] | [`FsTabDiff`](crate::tables::FsTabDiff) <br> [`MountInfoDiff`](crate::tables::MountInfoDiff) <br> [`SwapsDiff`](crate::tables::SwapsDiff) <br> [`UTabDiff`](crate::tables::UTabDiff) |
//! | [`mnt_new_tabdiff`][327] | [`FsTabDiff::new`](crate::tables::FsTabDiff::new) <br> [`MountInfoDiff::new`](crate::tables::MountInfoDiff::new) <br> [`SwapsDiff::new`](crate::tables::SwapsDiff::new) <br> [`UTabDiff::new`](crate::tables::UTabDiff::new) |
//! | [`mnt_free_tabdiff`][329] | [`FsTabDiff`](crate::tables::FsTabDiff), [`MountInfoDiff`](crate::tables::MountInfoDiff), [`SwapsDiff`](crate::tables::SwapsDiff), [`UTabDiff`](crate::tables::UTabDiff) are automatically deallocated when they go out of scope. |
//! | [`mnt_tabdiff_next_change`][331] | [`FsTabDiff::iter`](crate::tables::FsTabDiff::iter) <br> [`FsTabDiff::try_iter`](crate::tables::FsTabDiff::try_iter) <br> [`MountInfoDiff::iter`](crate::tables::MountInfoDiff::iter) <br> [`MountInfoDiff::try_iter`](crate::tables::MountInfoDiff::try_iter) <br> [`SwapsDiff::iter`](crate::tables::SwapsDiff::iter) <br> [`SwapsDiff::try_iter`](crate::tables::SwapsDiff::try_iter) <br> [`UTabDiff::iter`](crate::tables::UTabDiff::iter) <br> [`UTabDiff::try_iter`](crate::tables::UTabDiff::try_iter) |
//! | [`mnt_diff_tables`][329] | [`FsTabDiff::diff`](crate::tables::FsTabDiff::diff) <br> [`MountInfoDiff::diff`](crate::tables::MountInfoDiff::diff) <br> [`SwapsDiff::diff`](crate::tables::SwapsDiff::diff) <br> [`UTabDiff::diff`](crate::tables::UTabDiff::diff) |
//!
//! [326]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Compare-changes-in-mount-tables.html#libmnt-tabdiff
//! [327]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Compare-changes-in-mount-tables.html#mnt-new-tabdiff
//! [328]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Compare-changes-in-mount-tables.html#mnt-free-tabdiff
//! [329]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Compare-changes-in-mount-tables.html#mnt-tabdiff-next-change
//! [330]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Compare-changes-in-mount-tables.html#mnt-diff-tables
//!
//! ### Mount options
//! #### Options string
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`mnt_optstr_append_option`][330] | [`core::optstring::append_option`] |
//! | [`mnt_optstr_apply_flags`][331] | Deprecated. |
//! | [`mnt_optstr_deduplicate_option`][332] | [`core::optstring::deduplicate_option`] |
//! | [`mnt_optstr_get_flags`][333] | [`core::optstring::find_mount_flags`] <br> [`core::optstring::find_userspace_mount_flags`] |
//! | [`mnt_optstr_get_option`][334] | [`core::optstring::option_value`] |
//! | [`mnt_optstr_get_options`][335] | [`core::optstring::take_fs_independent_options`] <br> [`core::optstring::take_userspace_options`] |
//! | [`mnt_optstr_next_option`][336] | [`core::optstring::iter_options`] |
//! | [`mnt_optstr_prepend_option`][337] | [`core::optstring::prepend_option`] |
//! | [`mnt_optstr_remove_option`][338] | [`core::optstring::remove_option`] |
//! | [`mnt_optstr_set_option`][339] | [`core::optstring::set_option_value`] <br> [`core::optstring::unset_option_value`] |
//! | [`mnt_split_optstr`][340] | [`core::optstring::take_fs_specific_options`] |
//! | [`mnt_match_options`][341] | [`core::optstring::matches_any_option`] |
//!
//! [330]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-append-option
//! [331]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-apply-flags
//! [332]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-deduplicate-option
//! [333]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-get-flags
//! [334]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-get-option
//! [335]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-get-options
//! [336]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-next-option
//! [337]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-prepend-option
//! [338]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-remove-option
//! [339]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-optstr-set-option
//! [340]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-split-optstr
//! [341]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Options-string.html#mnt-match-options
//!
//! #### Option maps
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_optmap`][342] | Internal. |
//! | [`MNT_INVERT`][343] | [`OptionFilter::Negated`](crate::core::optstring::OptionFilter::Negated) |
//! | [`MNT_NOMTAB`][344] | [`OptionFilter::NotInMountInfo`](crate::core::optstring::OptionFilter::NotInMountInfo) |
//! | [`MNT_PREFIX`][345] | [`OptionFilter::Prefixed`](crate::core::optstring::OptionFilter::Prefixed) |
//! | [`MNT_NOHLPS`][346] | [`OptionFilter::NotForMountHelpers`](crate::core::optstring::OptionFilter::NotForMountHelpers) |
//! | [`mnt_get_builtin_optmap`][347] | Internal. |
//!
//! [342]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Option-maps.html#libmnt-optmap
//! [343]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Option-maps.html#MNT-INVERT:CAPS
//! [344]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Option-maps.html#MNT-NOMTAB:CAPS
//! [345]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Option-maps.html#MNT-PREFIX:CAPS
//! [346]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Option-maps.html#MNT-NOHLPS:CAPS
//! [347]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Option-maps.html#mnt-get-builtin-optmap
//!
//! ### Misc
//! #### Library initialization
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`mnt_init_debug`][348] | [`debug::init_default_debug`]<br>[`debug::init_full_debug`] |
//!
//! [348]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Library-initialization.html#mnt-init-debug
//!
//! #### Cache
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_cache`][349] | [`Cache`](crate::core::cache::Cache) |
//! | [`mnt_new_cache`][350] | [`Cache::new`](crate::core::cache::Cache::new) |
//! | [`mnt_free_cache`][351] | [`Cache`](crate::core::cache::Cache) is automatically deallocated when it goes out of scope. |
//! | [`mnt_ref_cache`][352] | Managed automatically. |
//! | [`mnt_unref_cache`][353] | Managed automatically. |
//! | [`mnt_cache_device_has_tag`][354] | [`Cache::device_has_tag`](crate::core::cache::Cache::device_has_tag) |
//! | [`mnt_cache_find_tag_value`][355] | [`Cache::find_tag_value`](crate::core::cache::Cache::find_tag_value) |
//! | [`mnt_cache_read_tags`][356] | [`Cache::import_tags`](crate::core::cache::Cache::import_tags) |
//! | [`mnt_cache_set_targets`][357] | [`Cache::import_paths`](crate::core::cache::Cache::import_paths) |
//! | [`mnt_cache_set_sbprobe`][358] | [`Cache::collect_fs_properties`](crate::core::cache::Cache::collect_fs_properties) |
//! | [`mnt_get_fstype`][359] | [`Cache::find_file_system_type`](crate::core::cache::Cache::find_file_system_type)<br>[`Cache::find_and_cache_file_system_type`](crate::core::cache::Cache::find_and_cache_file_system_type) |
//! | [`mnt_pretty_path`][360] | [`Cache::canonicalize`](crate::core::cache::Cache::canonicalize)<br>[`Cache::canonicalize_and_cache`](crate::core::cache::Cache::canonicalize_and_cache) |
//! | [`mnt_resolve_path`][361] | [`Cache::resolve`](crate::core::cache::Cache::resolve)<br>[`Cache::resolve_and_cache`](crate::core::cache::Cache::resolve_and_cache) |
//! | [`mnt_resolve_spec`][362] | Not implemented. Use the specialized functions corresponding to `mnt_resolve_path` or `mnt_resolve_tag` as applicable. |
//! | [`mnt_resolve_tag`][363] | [`Cache::find_first_device_with_tag`](crate::core::cache::Cache::find_first_device_with_tag)<br>[`Cache::find_and_cache_first_device_with_tag`](crate::core::cache::Cache::find_and_cache_first_device_with_tag) |
//! | [`mnt_resolve_target`][364] | [`Cache::find_device_mounted_at`](crate::core::cache::Cache::find_device_mounted_at)<br>[`Cache::find_and_cache_device_mounted_at`](crate::core::cache::Cache::find_and_cache_device_mounted_at) |
//!
//! [349]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#libmnt-cache
//! [350]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-new-cache
//! [351]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-free-cache
//! [352]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-ref-cache
//! [353]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-unref-cache
//! [354]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-cache-device-has-tag
//! [355]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-cache-find-tag-value
//! [356]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-cache-read-tags
//! [357]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-cache-set-targets
//! [358]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-cache-set-sbprobe
//! [359]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-get-fstype
//! [360]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-pretty-path
//! [361]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-resolve-path
//! [362]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-resolve-spec
//! [363]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-resolve-tag
//! [364]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Cache.html#mnt-resolve-target
//!
//! #### Iterator
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`struct libmnt_iter`][365] | [`GenIterator`](crate::core::iter::GenIterator) |
//! | [`mnt_free_iter`][366] | [`GenIterator`](crate::core::iter::GenIterator) is automatically deallocated when it goes out of scope. |
//! | [`mnt_iter_get_direction`][367] | [`GenIterator::direction`](crate::core::iter::GenIterator::direction) |
//! | [`mnt_new_iter`][368] | [`GenIterator::new`](crate::core::iter::GenIterator::new) |
//! | [`mnt_reset_iter`][369] | [`GenIterator::reset`](crate::core::iter::GenIterator::reset)<br>[`GenIterator::reset_forward`](crate::core::iter::GenIterator::reset_forward)<br>[`GenIterator::reset_backward`](crate::core::iter::GenIterator::reset_backward) |
//!
//! [365]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Iterator.html#libmnt-iter
//! [366]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Iterator.html#mnt-free-iter
//! [367]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Iterator.html#mnt-iter-get-direction
//! [368]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Iterator.html#mnt-new-iter
//! [369]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Iterator.html#mnt-reset-iter
//!
//! #### Utils
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`mnt_fstype_is_netfs`][370] | [`core::utils::is_network_fs`] |
//! | [`mnt_fstype_is_pseudofs`][371] | [`core::utils::is_pseudo_fs`] |
//! | [`mnt_get_fstab_path`][372] | [`core::utils::path_to_fstab`] |
//! | [`mnt_get_mountpoint`][373] | [`core::utils::find_device_mountpoint`] |
//! | [`mnt_get_mtab_path`][374] | Deprecated. |
//! | [`mnt_get_swaps_path`][375] | [`core::utils::path_to_swaps`] |
//! | [`mnt_guess_system_root`][376] | [`core::utils::device_number_to_device_name`]<br>[`core::utils::device_number_to_cached_device_name`] |
//! | [`mnt_has_regular_mtab`][377] | Deprecated. |
//! | [`mnt_mangle`][378] | [`core::utils::fstab_encode`] |
//! | [`mnt_match_fstype`][379] | [`core::utils::matches_fs_type`] |
//! | [`mnt_tag_is_valid`][380] | Not implemented. [`Tag`](crate::core::device::Tag)s are valid by definition. |
//! | [`mnt_unmangle`][381] | [`core::utils::fstab_decode`] |
//!
//! [370]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-fstype-is-netfs
//! [371]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-fstype-is-pseudofs
//! [372]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-get-fstab-path
//! [373]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-get-mountpoint
//! [374]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-get-mtab-path
//! [375]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-get-swaps-path
//! [376]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-guess-system-root
//! [377]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-has-regular-mtab
//! [378]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-mangle
//! [379]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-match-fstype
//! [380]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-tag-is-valid
//! [381]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Utils.html#mnt-unmangle
//!
//! #### Version functions
//!
//! | `libmount` | `rsmount` |
//! | ------------------ | --------- |
//! | [`LIBMOUNT_MAJOR_VERSION`][382] | [`core::version::VERSION_NUMBER_MAJOR`] |
//! | [`LIBMOUNT_MINOR_VERSION`][383] | [`core::version::VERSION_NUMBER_MINOR`] |
//! | [`LIBMOUNT_PATCH_VERSION`][384] | [`core::version::VERSION_NUMBER_PATCH`] |
//! | [`LIBMOUNT_VERSION`][385] | [`core::version::VERSION_STRING`] |
//! | [`mnt_parse_version_string`][386] | [`core::version::version_string_to_release_code`] |
//! | [`mnt_get_library_version`][387] | [`core::version::VERSION_STRING`] |
//! | [`mnt_get_library_features`][388] | [`core::version::library_features`] |
//!
//! [382]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Version-functions.html#LIBMOUNT-MAJOR-VERSION:CAPS
//! [383]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Version-functions.html#LIBMOUNT-MINOR-VERSION:CAPS
//! [384]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Version-functions.html#LIBMOUNT-PATCH-VERSION:CAPS
//! [385]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Version-functions.html#LIBMOUNT-VERSION:CAPS
//! [386]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Version-functions.html#mnt-parse-version-string
//! [387]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Version-functions.html#mnt-get-library-version
//! [388]: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.39/libmount-docs/libmount-Version-functions.html#mnt-get-library-features
mod prelude {}
#[allow(unused_imports)]
use prelude::*;
pub use error::*;
pub use core::cache;
pub use core::device;
pub use core::entries;
pub use core::errors;
pub use core::flags;
pub use core::fs;
pub use core::iter;
pub use core::optstring;
pub use core::utils;
pub use core::version;
mod core;
pub mod debug;
mod error;
pub(crate) mod ffi_utils;
pub mod mount;
pub mod tables;