#[repr(transparent)]
pub struct InFlag { /* private fields */ }
Expand description

Defines the input type of a field. In traceloggingprovider.h, this is the ’TlgIn_t` enumerated type.

Implementations§

source§

impl InFlag

source

pub const NULL: Self = _

No value at all

source

pub const UNICODE_STRING: Self = _

A wide string (UTF-16), corresponding to PCWSTR in Win32.

source

pub const ANSI_STRING: Self = _

An ANSI string, corresponding to PCSTR in Win32. The character set can be specified as UTF-8 by using OutFlag::UTF8.

source

pub const INT8: Self = _

i8

source

pub const UINT8: Self = _

u8

source

pub const INT16: Self = _

i16, stored in little-endian form.

source

pub const UINT16: Self = _

u16, stored in little-endian form.

source

pub const INT32: Self = _

i16, stored in little-endian form.

source

pub const UINT32: Self = _

u32, stored in little-endian form.

source

pub const INT64: Self = _

i64, stored in little-endian form.

source

pub const UINT64: Self = _

u64, stored in little-endian form.

source

pub const FLOAT: Self = _

f32, stored in little-endian form.

source

pub const DOUBLE: Self = _

f64, stored in little-endian form.

source

pub const BOOL32: Self = _

A Win32 ‘BOOL’ value, which is i32, stored in little-endian form.

source

pub const BINARY: Self = _

An array of bytes, stored in little-endian form.

source

pub const GUID: Self = _

A GUID, stored in canonical byte-oriented representation. The fields within the GUID are stored in big-endian form.

source

pub const FILETIME: Self = _

A Win32 FILETIME value. FILETIME values are u64 values, stored in little-endian form, counting 100ns intervals from the FILETIME epoch.

source

pub const SYSTEMTIME: Self = _

A Win32 SYSTEMTIME value, with fields encoded in little-endian form.

source

pub const SID: Self = _

A Win32 SID.

source

pub const HEXINT32: Self = _

An i32 value, encoded in little-endian form, displayed in hexadecimal.

source

pub const HEXINT64: Self = _

An i64 value, encoded in little-endian form, displayed in hexadecimal.

source

pub const COUNTED_UNICODE_STRING: Self = _

A counted wide string (UTF-16), corresponding to UNICODE_STRING in Win32. This type uses two data descriptor slots. The first is a u16 value, giving the length of the string data in WCHAR units (not bytes). The second points to the character data.

source

pub const COUNTED_ANSI_STRING: Self = _

A counted ANSI string, corresponding to STRING in Win32. The character set can be specified as UTF-8 by using OutFlag::UTF8. This type uses two data descriptor slots. The first is a u16 value, giving the length of the string data in WCHAR units (not bytes). The second points to the character data.

source

pub const CCOUNT_FLAG: Self = _

A flag which indicates that this field is an array of constant length. If this field is present, then the metadata contains an additional u16 field, which is the constant length.

source

pub const VCOUNT_FLAG: Self = _

A flag which indicates that this field has a dynamic length. The field uses two data descriptors. The first is a u16 field specifying the length of the array. The second points to the array data.

source

pub const CHAIN_FLAG: Self = _

A flag which indicates that this field metadata also includes an OutFlag. The OutFlag byte immediately follows the InFlag byte.

source

pub const CUSTOM_FLAG: Self = _

A flag which indicates that the field uses a custom serializer.

source

pub const TYPE_MASK: Self = _

A mask of the field type flags.

source

pub const COUNT_MASK: Self = _

A mask of the field length flags (VCOUNT_FLAG, CCOUNT_FLAG, CUSTOM_FLAG).

source

pub const FLAG_MASK: Self = _

A mask over all of the flags (all bits excluding the type bits).

source

pub const fn empty() -> Self

Returns an empty set of flags.

source

pub const fn all() -> Self

Returns the set containing all flags.

source

pub const fn bits(&self) -> u8

Returns the raw value of the flags currently stored.

source

pub const fn from_bits(bits: u8) -> Option<Self>

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

source

pub const fn from_bits_truncate(bits: u8) -> Self

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

source

pub const unsafe fn from_bits_unchecked(bits: u8) -> Self

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

source

pub const fn is_empty(&self) -> bool

Returns true if no flags are currently stored.

source

pub const fn is_all(&self) -> bool

Returns true if all flags are currently set.

source

pub const fn intersects(&self, other: Self) -> bool

Returns true if there are flags common to both self and other.

source

pub const fn contains(&self, other: Self) -> bool

Returns true if all of the flags in other are contained within self.

source

pub fn insert(&mut self, other: Self)

Inserts the specified flags in-place.

source

pub fn remove(&mut self, other: Self)

Removes the specified flags in-place.

source

pub fn toggle(&mut self, other: Self)

Toggles the specified flags in-place.

source

pub fn set(&mut self, other: Self, value: bool)

Inserts or removes the specified flags depending on the passed value.

source

pub const fn intersection(self, other: Self) -> Self

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

source

pub const fn union(self, other: Self) -> Self

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

source

pub const fn difference(self, other: Self) -> Self

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

source

pub const fn symmetric_difference(self, other: Self) -> Self

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

source

pub const fn complement(self) -> Self

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

source§

impl InFlag

source

pub const USIZE: InFlag = InFlag::UINT64

An alias for the architecture-dependent USIZE (pointer-sized word) InFlag.

source

pub const ISIZE: InFlag = InFlag::INT64

An alias for the architecture-dependent ISIZE (pointer-sized word) InFlag.

Trait Implementations§

source§

impl Binary for InFlag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl BitAnd<InFlag> for InFlag

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

§

type Output = InFlag

The resulting type after applying the & operator.
source§

impl BitAndAssign<InFlag> for InFlag

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

source§

impl BitOr<InFlag> for InFlag

source§

fn bitor(self, other: InFlag) -> Self

Returns the union of the two sets of flags.

§

type Output = InFlag

The resulting type after applying the | operator.
source§

impl BitOrAssign<InFlag> for InFlag

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

source§

impl BitXor<InFlag> for InFlag

source§

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

§

type Output = InFlag

The resulting type after applying the ^ operator.
source§

impl BitXorAssign<InFlag> for InFlag

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

source§

impl Clone for InFlag

source§

fn clone(&self) -> InFlag

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for InFlag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Extend<InFlag> for InFlag

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<InFlag> for InFlag

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for InFlag

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LowerHex for InFlag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Not for InFlag

source§

fn not(self) -> Self

Returns the complement of this set of flags.

§

type Output = InFlag

The resulting type after applying the ! operator.
source§

impl Octal for InFlag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Ord for InFlag

source§

fn cmp(&self, other: &InFlag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl PartialEq<InFlag> for InFlag

source§

fn eq(&self, other: &InFlag) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<InFlag> for InFlag

source§

fn partial_cmp(&self, other: &InFlag) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Sub<InFlag> for InFlag

source§

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

§

type Output = InFlag

The resulting type after applying the - operator.
source§

impl SubAssign<InFlag> for InFlag

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

source§

impl UpperHex for InFlag

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter.
source§

impl Copy for InFlag

source§

impl Eq for InFlag

source§

impl StructuralEq for InFlag

source§

impl StructuralPartialEq for InFlag

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.