use enum_iterator::Sequence;
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq, Sequence)]
#[repr(u64)]
#[non_exhaustive]
pub enum MountFlag {
Remount = libc::MS_REMOUNT,
Bind = libc::MS_BIND,
Move = libc::MS_MOVE,
ReadOnly = libc::MS_RDONLY,
Recursive = libc::MS_REC,
Shared = libc::MS_SHARED,
Private = libc::MS_PRIVATE,
Slave = libc::MS_SLAVE,
Unbindable = libc::MS_UNBINDABLE,
Propagation = (libc::MS_SHARED | libc::MS_SLAVE | libc::MS_UNBINDABLE | libc::MS_PRIVATE),
MandatoryLocking = libc::MS_MANDLOCK,
NoDeviceAccess = libc::MS_NODEV,
NoExecute = libc::MS_NOEXEC,
NoSuid = libc::MS_NOSUID,
Synchronous = libc::MS_SYNCHRONOUS,
SynchronizeDirectories = libc::MS_DIRSYNC,
LazyTime = libc::MS_LAZYTIME,
NoUpdateAccessTime = libc::MS_NOATIME,
NoUpdateDirectoryAccessTime = libc::MS_NODIRATIME,
Secure = (libc::MS_NOEXEC | libc::MS_NOSUID | libc::MS_NODEV),
OwnerSecure = (libc::MS_NOSUID | libc::MS_NODEV),
RelativeAcessTime = libc::MS_RELATIME,
Silent = libc::MS_SILENT,
StrictUpdateAccessTime = libc::MS_STRICTATIME,
Active = libc::MS_ACTIVE,
NoUser = libc::MS_NOUSER,
MagicMask = libc::MS_MGC_MSK,
MagicValue = libc::MS_MGC_VAL,
PosixAcl = libc::MS_POSIXACL,
RemountMask = libc::MS_RMT_MASK,
IVersion = libc::MS_I_VERSION,
KernelMount = libc::MS_KERNMOUNT,
}