pub struct Characteristics(/* private fields */);
Expand description
The Characteristics field contains flags that indicate attributes of the object or image file.
Implementations§
Source§impl Characteristics
impl Characteristics
Sourcepub const IMAGE_FILE_RELOCS_STRIPPED: Self
pub const IMAGE_FILE_RELOCS_STRIPPED: Self
Image only, Windows CE, and Microsoft Windows NT and later. This indicates that the file does not contain base relocations and must therefore be loaded at its preferred base address. If the base address is not available, the loader reports an error. The default behavior of the linker is to strip base relocations from executable (EXE) files.
Sourcepub const IMAGE_FILE_EXECUTABLE_IMAGE: Self
pub const IMAGE_FILE_EXECUTABLE_IMAGE: Self
Image only. This indicates that the image file is valid and can be run. If this flag is not set, it indicates a linker error.
Sourcepub const IMAGE_FILE_LINE_NUMS_STRIPPED: Self
pub const IMAGE_FILE_LINE_NUMS_STRIPPED: Self
COFF line numbers have been removed. This flag is deprecated and should be zero.
Sourcepub const IMAGE_FILE_LOCAL_SYMS_STRIPPED: Self
pub const IMAGE_FILE_LOCAL_SYMS_STRIPPED: Self
COFF symbol table entries for local symbols have been removed. This flag is deprecated and should be zero.
Sourcepub const IMAGE_FILE_AGGRESIVE_WS_TRIM: Self
pub const IMAGE_FILE_AGGRESIVE_WS_TRIM: Self
Obsolete. Aggressively trim working set. This flag is deprecated for Windows 2000 and later and must be zero.
Sourcepub const IMAGE_FILE_LARGE_ADDRESS_AWARE: Self
pub const IMAGE_FILE_LARGE_ADDRESS_AWARE: Self
Application can handle > 2-GB addresses.
Sourcepub const IMAGE_FILE_RESERVED1: Self
pub const IMAGE_FILE_RESERVED1: Self
This flag is reserved for future use.
Sourcepub const IMAGE_FILE_BYTES_RESERVED_LO: Self
pub const IMAGE_FILE_BYTES_RESERVED_LO: Self
Little endian: the least significant bit (LSB) precedes the most significant bit (MSB) in memory. This flag is deprecated and should be zero.
Sourcepub const IMAGE_FILE_32BIT_MACHINE: Self
pub const IMAGE_FILE_32BIT_MACHINE: Self
Machine is based on a 32-bit-word architecture.
Sourcepub const IMAGE_FILE_DEBUG_STRIPPED: Self
pub const IMAGE_FILE_DEBUG_STRIPPED: Self
Debugging information is removed from the image file.
Sourcepub const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP: Self
pub const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP: Self
If the image is on removable media, fully load it and copy it to the swap file.
Sourcepub const IMAGE_FILE_NET_RUN_FROM_SWAP: Self
pub const IMAGE_FILE_NET_RUN_FROM_SWAP: Self
If the image is on network media, fully load it and copy it to the swap file.
Sourcepub const IMAGE_FILE_SYSTEM: Self
pub const IMAGE_FILE_SYSTEM: Self
The image file is a system file, not a user program.
Sourcepub const IMAGE_FILE_DLL: Self
pub const IMAGE_FILE_DLL: Self
The image file is a dynamic-link library (DLL). Such files are considered executable files for almost all purposes, although they cannot be directly run.
Sourcepub const IMAGE_FILE_UP_SYSTEM_ONLY: Self
pub const IMAGE_FILE_UP_SYSTEM_ONLY: Self
The file should be run only on a uniprocessor machine.
Sourcepub const IMAGE_FILE_BYTES_RESERVED_HI: Self
pub const IMAGE_FILE_BYTES_RESERVED_HI: Self
Big endian: the MSB precedes the LSB in memory. This flag is deprecated and should be zero.
Source§impl Characteristics
impl Characteristics
Sourcepub const fn bits(&self) -> u16
pub const fn bits(&self) -> u16
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
Sourcepub const fn from_bits(bits: u16) -> Option<Self>
pub const fn from_bits(bits: u16) -> Option<Self>
Convert from a bits value.
This method will return None
if any unknown bits are set.
Sourcepub const fn from_bits_truncate(bits: u16) -> Self
pub const fn from_bits_truncate(bits: u16) -> Self
Convert from a bits value, unsetting any unknown bits.
Sourcepub const fn from_bits_retain(bits: u16) -> Self
pub const fn from_bits_retain(bits: u16) -> Self
Convert from a bits value exactly.
Sourcepub fn from_name(name: &str) -> Option<Self>
pub fn from_name(name: &str) -> Option<Self>
Get a flags value with the bits of a flag with the given name set.
This method will return None
if name
is empty or doesn’t
correspond to any named flag.
Sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Whether any set bits in a source flags value are also set in a target flags value.
Sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Whether all set bits in a source flags value are also set in a target flags value.
Sourcepub fn remove(&mut self, other: Self)
pub fn remove(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
remove
won’t truncate other
, but the !
operator will.
Sourcepub fn toggle(&mut self, other: Self)
pub fn toggle(&mut self, other: Self)
The bitwise exclusive-or (^
) of the bits in two flags values.
Sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Call insert
when value
is true
or remove
when value
is false
.
Sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
The bitwise and (&
) of the bits in two flags values.
Sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
The bitwise or (|
) of the bits in two flags values.
Sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
Sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
The bitwise exclusive-or (^
) of the bits in two flags values.
Sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
The bitwise negation (!
) of the bits in a flags value, truncating the result.
Source§impl Characteristics
impl Characteristics
Sourcepub const fn iter(&self) -> Iter<Characteristics> ⓘ
pub const fn iter(&self) -> Iter<Characteristics> ⓘ
Yield a set of contained flags values.
Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.
Sourcepub const fn iter_names(&self) -> IterNames<Characteristics> ⓘ
pub const fn iter_names(&self) -> IterNames<Characteristics> ⓘ
Yield a set of contained named flags values.
This method is like iter
, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
Trait Implementations§
Source§impl Binary for Characteristics
impl Binary for Characteristics
Source§impl BitAnd for Characteristics
impl BitAnd for Characteristics
Source§impl BitAndAssign for Characteristics
impl BitAndAssign for Characteristics
Source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
The bitwise and (&
) of the bits in two flags values.
Source§impl BitOr for Characteristics
impl BitOr for Characteristics
Source§fn bitor(self, other: Characteristics) -> Self
fn bitor(self, other: Characteristics) -> Self
The bitwise or (|
) of the bits in two flags values.
Source§type Output = Characteristics
type Output = Characteristics
|
operator.Source§impl BitOrAssign for Characteristics
impl BitOrAssign for Characteristics
Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
The bitwise or (|
) of the bits in two flags values.
Source§impl BitXor for Characteristics
impl BitXor for Characteristics
Source§impl BitXorAssign for Characteristics
impl BitXorAssign for Characteristics
Source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
The bitwise exclusive-or (^
) of the bits in two flags values.
Source§impl Debug for Characteristics
impl Debug for Characteristics
Source§impl Display for Characteristics
impl Display for Characteristics
Source§impl Extend<Characteristics> for Characteristics
impl Extend<Characteristics> for Characteristics
Source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
The bitwise or (|
) of the bits in each flags value.
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)Source§impl Flags for Characteristics
impl Flags for Characteristics
Source§const FLAGS: &'static [Flag<Characteristics>]
const FLAGS: &'static [Flag<Characteristics>]
Source§fn from_bits_retain(bits: u16) -> Characteristics
fn from_bits_retain(bits: u16) -> Characteristics
Source§fn contains_unknown_bits(&self) -> bool
fn contains_unknown_bits(&self) -> bool
true
if any unknown bits are set.Source§fn from_bits_truncate(bits: Self::Bits) -> Self
fn from_bits_truncate(bits: Self::Bits) -> Self
Source§fn from_name(name: &str) -> Option<Self>
fn from_name(name: &str) -> Option<Self>
Source§fn iter_names(&self) -> IterNames<Self> ⓘ
fn iter_names(&self) -> IterNames<Self> ⓘ
Source§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|
) of the bits in two flags values.Source§fn remove(&mut self, other: Self)where
Self: Sized,
fn remove(&mut self, other: Self)where
Self: Sized,
&!
). Read moreSource§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^
) of the bits in two flags values.Source§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&
) of the bits in two flags values.Source§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
&!
). Read moreSource§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^
) of the bits in two flags values.Source§fn complement(self) -> Self
fn complement(self) -> Self
!
) of the bits in a flags value, truncating the result.Source§impl FromIterator<Characteristics> for Characteristics
impl FromIterator<Characteristics> for Characteristics
Source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
The bitwise or (|
) of the bits in each flags value.
Source§impl FromStr for Characteristics
impl FromStr for Characteristics
Source§impl IntoIterator for Characteristics
impl IntoIterator for Characteristics
Source§impl LowerHex for Characteristics
impl LowerHex for Characteristics
Source§impl Not for Characteristics
impl Not for Characteristics
Source§impl Octal for Characteristics
impl Octal for Characteristics
Source§impl PublicFlags for Characteristics
impl PublicFlags for Characteristics
Source§impl Sub for Characteristics
impl Sub for Characteristics
Source§fn sub(self, other: Self) -> Self
fn sub(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
Source§type Output = Characteristics
type Output = Characteristics
-
operator.Source§impl SubAssign for Characteristics
impl SubAssign for Characteristics
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.