Coverage Report

Created: 2025-12-31 06:16

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.4.0/src/traits.rs
Line
Count
Source
1
use core::{
2
    fmt,
3
    ops::{BitAnd, BitOr, BitXor, Not},
4
};
5
6
use crate::{
7
    iter,
8
    parser::{ParseError, ParseHex, WriteHex},
9
};
10
11
/**
12
A defined flags value that may be named or unnamed.
13
*/
14
pub struct Flag<B> {
15
    name: &'static str,
16
    value: B,
17
}
18
19
impl<B> Flag<B> {
20
    /**
21
    Define a flag.
22
23
    If `name` is non-empty then the flag is named, otherwise it's unnamed.
24
    */
25
0
    pub const fn new(name: &'static str, value: B) -> Self {
26
0
        Flag { name, value }
27
0
    }
28
29
    /**
30
    Get the name of this flag.
31
32
    If the flag is unnamed then the returned string will be empty.
33
    */
34
0
    pub const fn name(&self) -> &'static str {
35
0
        self.name
36
0
    }
Unexecuted instantiation: <bitflags::traits::Flag<fuse::sys::IoctlFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<fuse::sys::OpenOptions>>::name
Unexecuted instantiation: <bitflags::traits::Flag<fuse::sys::SetattrValid>>::name
Unexecuted instantiation: <bitflags::traits::Flag<fuse::sys::SetUpMappingFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<fuse::sys::FsOptions>>::name
Unexecuted instantiation: <bitflags::traits::Flag<vmm_vhost::message::VhostUserHeaderFlag>>::name
Unexecuted instantiation: <bitflags::traits::Flag<vmm_vhost::message::VhostUserConfigFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<vmm_vhost::message::VhostUserVringAddrFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<vmm_vhost::message::VhostUserProtocolFeatures>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::fs::ioctl::IFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::fs::statx::StatxFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::fs::statx::StatxAttributes>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::fs::xattr::XattrFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::SocketFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::XdpRingFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::XdpDescOptions>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::XdpOptionsFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::XdpUmemRegFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::SocketAddrXdpFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::MemfdFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::RenameFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::ResolveFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::FallocateFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::StatVfsMountFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::Mode>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::Access>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::OFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::AtFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::SealFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::inotify::WatchFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::inotify::CreateFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::inotify::ReadFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::io::types::ReadWriteFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::io::types::FdFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::io::types::DupFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MlockFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MsyncFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MremapFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MlockAllFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MprotectFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::UserfaultfdFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MapFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::ProtFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::net::send_recv::ReturnFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::net::send_recv::RecvFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::net::send_recv::SendFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::pipe::types::SpliceFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::pipe::types::PipeFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::event::epoll::EventFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::event::epoll::CreateFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::event::types::EventfdFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::event::poll_fd::PollFlags>>::name
Unexecuted instantiation: <bitflags::traits::Flag<vm_memory::guest_memory::sys::linux::MemoryPolicy>>::name
Unexecuted instantiation: <bitflags::traits::Flag<_>>::name
37
38
    /**
39
    Get the flags value of this flag.
40
    */
41
1.96k
    pub const fn value(&self) -> &B {
42
1.96k
        &self.value
43
1.96k
    }
<bitflags::traits::Flag<fuse::sys::IoctlFlags>>::value
Line
Count
Source
41
18
    pub const fn value(&self) -> &B {
42
18
        &self.value
43
18
    }
Unexecuted instantiation: <bitflags::traits::Flag<fuse::sys::OpenOptions>>::value
<bitflags::traits::Flag<fuse::sys::SetattrValid>>::value
Line
Count
Source
41
9
    pub const fn value(&self) -> &B {
42
9
        &self.value
43
9
    }
<bitflags::traits::Flag<fuse::sys::SetUpMappingFlags>>::value
Line
Count
Source
41
6
    pub const fn value(&self) -> &B {
42
6
        &self.value
43
6
    }
<bitflags::traits::Flag<fuse::sys::FsOptions>>::value
Line
Count
Source
41
1.93k
    pub const fn value(&self) -> &B {
42
1.93k
        &self.value
43
1.93k
    }
Unexecuted instantiation: <bitflags::traits::Flag<vmm_vhost::message::VhostUserHeaderFlag>>::value
Unexecuted instantiation: <bitflags::traits::Flag<vmm_vhost::message::VhostUserConfigFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<vmm_vhost::message::VhostUserVringAddrFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<vmm_vhost::message::VhostUserProtocolFeatures>>::value
Unexecuted instantiation: <bitflags::traits::Flag<vmm_vhost::message::VhostUserShmemMapMsgFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::fs::ioctl::IFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::fs::statx::StatxFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::fs::statx::StatxAttributes>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::fs::xattr::XattrFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::SocketFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::XdpRingFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::XdpDescOptions>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::XdpOptionsFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::XdpUmemRegFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::net::types::xdp::SocketAddrXdpFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::MemfdFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::RenameFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::ResolveFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::FallocateFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::StatVfsMountFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::Mode>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::Access>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::OFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::AtFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::types::SealFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::inotify::WatchFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::inotify::CreateFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::fs::inotify::ReadFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::io::types::ReadWriteFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::io::types::FdFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::io::types::DupFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MlockFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MsyncFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MremapFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MlockAllFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MprotectFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::UserfaultfdFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::MapFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::mm::types::ProtFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::net::send_recv::ReturnFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::net::send_recv::RecvFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::net::send_recv::SendFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::pipe::types::SpliceFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::pipe::types::PipeFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::event::epoll::EventFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::event::epoll::CreateFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::event::types::EventfdFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<rustix::backend::event::poll_fd::PollFlags>>::value
Unexecuted instantiation: <bitflags::traits::Flag<vm_memory::guest_memory::sys::linux::MemoryPolicy>>::value
Unexecuted instantiation: <bitflags::traits::Flag<_>>::value
44
45
    /**
46
    Whether the flag is named.
47
48
    If [`Flag::name`] returns a non-empty string then this method will return `true`.
49
    */
50
0
    pub const fn is_named(&self) -> bool {
51
0
        !self.name.is_empty()
52
0
    }
53
54
    /**
55
    Whether the flag is unnamed.
56
57
    If [`Flag::name`] returns a non-empty string then this method will return `false`.
58
    */
59
0
    pub const fn is_unnamed(&self) -> bool {
60
0
        self.name.is_empty()
61
0
    }
62
}
63
64
/**
65
A set of defined flags using a bits type as storage.
66
67
## Implementing `Flags`
68
69
This trait is implemented by the [`bitflags`](macro.bitflags.html) macro:
70
71
```
72
use bitflags::bitflags;
73
74
bitflags! {
75
    struct MyFlags: u8 {
76
        const A = 1;
77
        const B = 1 << 1;
78
    }
79
}
80
```
81
82
It can also be implemented manually:
83
84
```
85
use bitflags::{Flag, Flags};
86
87
struct MyFlags(u8);
88
89
impl Flags for MyFlags {
90
    const FLAGS: &'static [Flag<Self>] = &[
91
        Flag::new("A", MyFlags(1)),
92
        Flag::new("B", MyFlags(1 << 1)),
93
    ];
94
95
    type Bits = u8;
96
97
    fn from_bits_retain(bits: Self::Bits) -> Self {
98
        MyFlags(bits)
99
    }
100
101
    fn bits(&self) -> Self::Bits {
102
        self.0
103
    }
104
}
105
```
106
107
## Using `Flags`
108
109
The `Flags` trait can be used generically to work with any flags types. In this example,
110
we can count the number of defined named flags:
111
112
```
113
# use bitflags::{bitflags, Flags};
114
fn defined_flags<F: Flags>() -> usize {
115
    F::FLAGS.iter().filter(|f| f.is_named()).count()
116
}
117
118
bitflags! {
119
    struct MyFlags: u8 {
120
        const A = 1;
121
        const B = 1 << 1;
122
        const C = 1 << 2;
123
124
        const _ = !0;
125
    }
126
}
127
128
assert_eq!(3, defined_flags::<MyFlags>());
129
```
130
*/
131
pub trait Flags: Sized + 'static {
132
    /// The set of defined flags.
133
    const FLAGS: &'static [Flag<Self>];
134
135
    /// The underlying bits type.
136
    type Bits: Bits;
137
138
    /// Get a flags value with all bits unset.
139
0
    fn empty() -> Self {
140
0
        Self::from_bits_retain(Self::Bits::EMPTY)
141
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::empty
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::empty
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::empty
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::empty
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::empty
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::empty
Unexecuted instantiation: <_ as bitflags::traits::Flags>::empty
142
143
    /// Get a flags value with all known bits set.
144
0
    fn all() -> Self {
145
0
        let mut truncated = Self::Bits::EMPTY;
146
147
0
        for flag in Self::FLAGS.iter() {
148
0
            truncated = truncated | flag.value().bits();
149
0
        }
150
151
0
        Self::from_bits_retain(truncated)
152
0
    }
153
154
    /// Get the underlying bits value.
155
    ///
156
    /// The returned value is exactly the bits set in this flags value.
157
    fn bits(&self) -> Self::Bits;
158
159
    /// Convert from a bits value.
160
    ///
161
    /// This method will return `None` if any unknown bits are set.
162
0
    fn from_bits(bits: Self::Bits) -> Option<Self> {
163
0
        let truncated = Self::from_bits_truncate(bits);
164
165
0
        if truncated.bits() == bits {
166
0
            Some(truncated)
167
        } else {
168
0
            None
169
        }
170
0
    }
171
172
    /// Convert from a bits value, unsetting any unknown bits.
173
0
    fn from_bits_truncate(bits: Self::Bits) -> Self {
174
0
        Self::from_bits_retain(bits & Self::all().bits())
175
0
    }
176
177
    /// Convert from a bits value exactly.
178
    fn from_bits_retain(bits: Self::Bits) -> Self;
179
180
    /// Get a flags value with the bits of a flag with the given name set.
181
    ///
182
    /// This method will return `None` if `name` is empty or doesn't
183
    /// correspond to any named flag.
184
0
    fn from_name(name: &str) -> Option<Self> {
185
        // Don't parse empty names as empty flags
186
0
        if name.is_empty() {
187
0
            return None;
188
0
        }
189
190
0
        for flag in Self::FLAGS {
191
0
            if flag.name() == name {
192
0
                return Some(Self::from_bits_retain(flag.value().bits()));
193
0
            }
194
        }
195
196
0
        None
197
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::from_name
Unexecuted instantiation: <_ as bitflags::traits::Flags>::from_name
198
199
    /// Yield a set of contained flags values.
200
    ///
201
    /// Each yielded flags value will correspond to a defined named flag. Any unknown bits
202
    /// will be yielded together as a final flags value.
203
0
    fn iter(&self) -> iter::Iter<Self> {
204
0
        iter::Iter::new(self)
205
0
    }
206
207
    /// Yield a set of contained named flags values.
208
    ///
209
    /// This method is like [`Flags::iter`], except only yields bits in contained named flags.
210
    /// Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
211
0
    fn iter_names(&self) -> iter::IterNames<Self> {
212
0
        iter::IterNames::new(self)
213
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::iter_names
Unexecuted instantiation: <_ as bitflags::traits::Flags>::iter_names
214
215
    /// Whether all bits in this flags value are unset.
216
0
    fn is_empty(&self) -> bool {
217
0
        self.bits() == Self::Bits::EMPTY
218
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::is_empty
Unexecuted instantiation: <_ as bitflags::traits::Flags>::is_empty
219
220
    /// Whether all known bits in this flags value are set.
221
0
    fn is_all(&self) -> bool {
222
        // NOTE: We check against `Self::all` here, not `Self::Bits::ALL`
223
        // because the set of all flags may not use all bits
224
0
        Self::all().bits() | self.bits() == self.bits()
225
0
    }
226
227
    /// Whether any set bits in a source flags value are also set in a target flags value.
228
0
    fn intersects(&self, other: Self) -> bool
229
0
    where
230
0
        Self: Sized,
231
    {
232
0
        self.bits() & other.bits() != Self::Bits::EMPTY
233
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::intersects
Unexecuted instantiation: <_ as bitflags::traits::Flags>::intersects
234
235
    /// Whether all set bits in a source flags value are also set in a target flags value.
236
0
    fn contains(&self, other: Self) -> bool
237
0
    where
238
0
        Self: Sized,
239
    {
240
0
        self.bits() & other.bits() == other.bits()
241
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::contains
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::contains
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::contains
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::contains
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::contains
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::contains
Unexecuted instantiation: <_ as bitflags::traits::Flags>::contains
242
243
    /// The bitwise or (`|`) of the bits in two flags values.
244
0
    fn insert(&mut self, other: Self)
245
0
    where
246
0
        Self: Sized,
247
    {
248
0
        *self = Self::from_bits_retain(self.bits()).union(other);
249
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::insert
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::insert
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::insert
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::insert
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::insert
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::insert
Unexecuted instantiation: <_ as bitflags::traits::Flags>::insert
250
251
    /// The intersection of a source flags value with the complement of a target flags value (`&!`).
252
    ///
253
    /// This method is not equivalent to `self & !other` when `other` has unknown bits set.
254
    /// `remove` won't truncate `other`, but the `!` operator will.
255
0
    fn remove(&mut self, other: Self)
256
0
    where
257
0
        Self: Sized,
258
    {
259
0
        *self = Self::from_bits_retain(self.bits()).difference(other);
260
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::remove
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::remove
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::remove
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::remove
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::remove
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::remove
Unexecuted instantiation: <_ as bitflags::traits::Flags>::remove
261
262
    /// The bitwise exclusive-or (`^`) of the bits in two flags values.
263
0
    fn toggle(&mut self, other: Self)
264
0
    where
265
0
        Self: Sized,
266
    {
267
0
        *self = Self::from_bits_retain(self.bits()).symmetric_difference(other);
268
0
    }
269
270
    /// Call [`Flags::insert`] when `value` is `true` or [`Flags::remove`] when `value` is `false`.
271
0
    fn set(&mut self, other: Self, value: bool)
272
0
    where
273
0
        Self: Sized,
274
    {
275
0
        if value {
276
0
            self.insert(other);
277
0
        } else {
278
0
            self.remove(other);
279
0
        }
280
0
    }
281
282
    /// The bitwise and (`&`) of the bits in two flags values.
283
    #[must_use]
284
0
    fn intersection(self, other: Self) -> Self {
285
0
        Self::from_bits_retain(self.bits() & other.bits())
286
0
    }
287
288
    /// The bitwise or (`|`) of the bits in two flags values.
289
    #[must_use]
290
0
    fn union(self, other: Self) -> Self {
291
0
        Self::from_bits_retain(self.bits() | other.bits())
292
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::union
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::union
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::union
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::union
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::union
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::union
Unexecuted instantiation: <_ as bitflags::traits::Flags>::union
293
294
    /// The intersection of a source flags value with the complement of a target flags value (`&!`).
295
    ///
296
    /// This method is not equivalent to `self & !other` when `other` has unknown bits set.
297
    /// `difference` won't truncate `other`, but the `!` operator will.
298
    #[must_use]
299
0
    fn difference(self, other: Self) -> Self {
300
0
        Self::from_bits_retain(self.bits() & !other.bits())
301
0
    }
Unexecuted instantiation: <fuse::sys::IoctlFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <fuse::sys::OpenOptions as bitflags::traits::Flags>::difference
Unexecuted instantiation: <fuse::sys::SetattrValid as bitflags::traits::Flags>::difference
Unexecuted instantiation: <fuse::sys::SetUpMappingFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <fuse::sys::FsOptions as bitflags::traits::Flags>::difference
Unexecuted instantiation: <vmm_vhost::message::VhostUserHeaderFlag as bitflags::traits::Flags>::difference
Unexecuted instantiation: <vmm_vhost::message::VhostUserConfigFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <vmm_vhost::message::VhostUserVringAddrFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <vmm_vhost::message::VhostUserProtocolFeatures as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::MemfdFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::RenameFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::ResolveFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::FallocateFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::StatVfsMountFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::Mode as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::Access as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::OFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::AtFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::types::SealFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::mm::types::MlockFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::mm::types::MsyncFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::mm::types::MremapFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::mm::types::MlockAllFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::mm::types::MprotectFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::mm::types::UserfaultfdFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::mm::types::MapFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::mm::types::ProtFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::fs::ioctl::IFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::net::types::xdp::XdpRingFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::net::types::xdp::XdpDescOptions as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::net::types::xdp::XdpOptionsFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::net::types::xdp::XdpUmemRegFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::net::types::xdp::SocketAddrXdpFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::event::poll_fd::PollFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::fs::statx::StatxFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::fs::statx::StatxAttributes as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::fs::xattr::XattrFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::net::types::SocketFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::pipe::types::SpliceFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::pipe::types::PipeFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::io::types::ReadWriteFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::io::types::FdFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::io::types::DupFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::net::send_recv::ReturnFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::net::send_recv::RecvFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::net::send_recv::SendFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::event::types::EventfdFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::inotify::WatchFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::inotify::CreateFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::fs::inotify::ReadFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::event::epoll::EventFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <rustix::backend::event::epoll::CreateFlags as bitflags::traits::Flags>::difference
Unexecuted instantiation: <vm_memory::guest_memory::sys::linux::MemoryPolicy as bitflags::traits::Flags>::difference
Unexecuted instantiation: <_ as bitflags::traits::Flags>::difference
302
303
    /// The bitwise exclusive-or (`^`) of the bits in two flags values.
304
    #[must_use]
305
0
    fn symmetric_difference(self, other: Self) -> Self {
306
0
        Self::from_bits_retain(self.bits() ^ other.bits())
307
0
    }
308
309
    /// The bitwise negation (`!`) of the bits in a flags value, truncating the result.
310
    #[must_use]
311
0
    fn complement(self) -> Self {
312
0
        Self::from_bits_truncate(!self.bits())
313
0
    }
314
}
315
316
/**
317
A bits type that can be used as storage for a flags type.
318
*/
319
pub trait Bits:
320
    Clone
321
    + Copy
322
    + PartialEq
323
    + BitAnd<Output = Self>
324
    + BitOr<Output = Self>
325
    + BitXor<Output = Self>
326
    + Not<Output = Self>
327
    + Sized
328
    + 'static
329
{
330
    /// A value with all bits unset.
331
    const EMPTY: Self;
332
333
    /// A value with all bits set.
334
    const ALL: Self;
335
}
336
337
// Not re-exported: prevent custom `Bits` impls being used in the `bitflags!` macro,
338
// or they may fail to compile based on crate features
339
pub trait Primitive {}
340
341
macro_rules! impl_bits {
342
    ($($u:ty, $i:ty,)*) => {
343
        $(
344
            impl Bits for $u {
345
                const EMPTY: $u = 0;
346
                const ALL: $u = <$u>::MAX;
347
            }
348
349
            impl Bits for $i {
350
                const EMPTY: $i = 0;
351
                const ALL: $i = <$u>::MAX as $i;
352
            }
353
354
            impl ParseHex for $u {
355
0
                fn parse_hex(input: &str) -> Result<Self, ParseError> {
356
0
                    <$u>::from_str_radix(input, 16).map_err(|_| ParseError::invalid_hex_flag(input))
Unexecuted instantiation: <u8 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <usize as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <u16 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <u32 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <u64 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <u128 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
357
0
                }
Unexecuted instantiation: <u8 as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <usize as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <u16 as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <u32 as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <u64 as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <u128 as bitflags::parser::ParseHex>::parse_hex
358
            }
359
360
            impl ParseHex for $i {
361
0
                fn parse_hex(input: &str) -> Result<Self, ParseError> {
362
0
                    <$i>::from_str_radix(input, 16).map_err(|_| ParseError::invalid_hex_flag(input))
Unexecuted instantiation: <i8 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <i128 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <isize as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <i16 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <i32 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
Unexecuted instantiation: <i64 as bitflags::parser::ParseHex>::parse_hex::{closure#0}
363
0
                }
Unexecuted instantiation: <i8 as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <i128 as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <isize as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <i16 as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <i32 as bitflags::parser::ParseHex>::parse_hex
Unexecuted instantiation: <i64 as bitflags::parser::ParseHex>::parse_hex
364
            }
365
366
            impl WriteHex for $u {
367
0
                fn write_hex<W: fmt::Write>(&self, mut writer: W) -> fmt::Result {
368
0
                    write!(writer, "{:x}", self)
369
0
                }
Unexecuted instantiation: <u32 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <u64 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <u32 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <u64 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <u16 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <u32 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <u64 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <u32 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <u8 as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <u128 as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <usize as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <u16 as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <u32 as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <u64 as bitflags::parser::WriteHex>::write_hex::<_>
370
            }
371
372
            impl WriteHex for $i {
373
0
                fn write_hex<W: fmt::Write>(&self, mut writer: W) -> fmt::Result {
374
0
                    write!(writer, "{:x}", self)
375
0
                }
Unexecuted instantiation: <i16 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <i32 as bitflags::parser::WriteHex>::write_hex::<&mut core::fmt::Formatter>
Unexecuted instantiation: <i8 as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <i128 as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <isize as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <i16 as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <i32 as bitflags::parser::WriteHex>::write_hex::<_>
Unexecuted instantiation: <i64 as bitflags::parser::WriteHex>::write_hex::<_>
376
            }
377
378
            impl Primitive for $i {}
379
            impl Primitive for $u {}
380
        )*
381
    }
382
}
383
384
impl_bits! {
385
    u8, i8,
386
    u16, i16,
387
    u32, i32,
388
    u64, i64,
389
    u128, i128,
390
    usize, isize,
391
}
392
393
/// A trait for referencing the `bitflags`-owned internal type
394
/// without exposing it publicly.
395
pub trait PublicFlags {
396
    /// The type of the underlying storage.
397
    type Primitive: Primitive;
398
399
    /// The type of the internal field on the generated flags type.
400
    type Internal;
401
}
402
403
#[doc(hidden)]
404
#[deprecated(note = "use the `Flags` trait instead")]
405
pub trait BitFlags: ImplementedByBitFlagsMacro + Flags {
406
    /// An iterator over enabled flags in an instance of the type.
407
    type Iter: Iterator<Item = Self>;
408
409
    /// An iterator over the raw names and bits for enabled flags in an instance of the type.
410
    type IterNames: Iterator<Item = (&'static str, Self)>;
411
}
412
413
#[allow(deprecated)]
414
impl<B: Flags> BitFlags for B {
415
    type Iter = iter::Iter<Self>;
416
    type IterNames = iter::IterNames<Self>;
417
}
418
419
impl<B: Flags> ImplementedByBitFlagsMacro for B {}
420
421
/// A marker trait that signals that an implementation of `BitFlags` came from the `bitflags!` macro.
422
///
423
/// There's nothing stopping an end-user from implementing this trait, but we don't guarantee their
424
/// manual implementations won't break between non-breaking releases.
425
#[doc(hidden)]
426
pub trait ImplementedByBitFlagsMacro {}
427
428
pub(crate) mod __private {
429
    pub use super::{ImplementedByBitFlagsMacro, PublicFlags};
430
}