rsmount 0.2.2

Safe Rust wrapper around the `util-linux/libmount` C library
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
// 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;