aboutsummaryrefslogtreecommitdiff
path: root/vendor/bitflags/src/internal.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/bitflags/src/internal.rs')
-rw-r--r--vendor/bitflags/src/internal.rs125
1 files changed, 0 insertions, 125 deletions
diff --git a/vendor/bitflags/src/internal.rs b/vendor/bitflags/src/internal.rs
deleted file mode 100644
index aca1ac4..0000000
--- a/vendor/bitflags/src/internal.rs
+++ /dev/null
@@ -1,125 +0,0 @@
-//! Generate the internal `bitflags`-facing flags type.
-//!
-//! The code generated here is owned by `bitflags`, but still part of its public API.
-//! Changes to the types generated here need to be considered like any other public API change.
-
-/// Declare the `bitflags`-facing bitflags struct.
-///
-/// This type is part of the `bitflags` crate's public API, but not part of the user's.
-#[macro_export(local_inner_macros)]
-#[doc(hidden)]
-macro_rules! __declare_internal_bitflags {
- (
- $vis:vis struct $InternalBitFlags:ident: $T:ty
- ) => {
- // NOTE: The ABI of this type is _guaranteed_ to be the same as `T`
- // This is relied on by some external libraries like `bytemuck` to make
- // its `unsafe` trait impls sound.
- #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
- #[repr(transparent)]
- $vis struct $InternalBitFlags($T);
- };
-}
-
-/// Implement functions on the private (bitflags-facing) bitflags type.
-///
-/// Methods and trait implementations can be freely added here without breaking end-users.
-/// If we want to expose new functionality to `#[derive]`, this is the place to do it.
-#[macro_export(local_inner_macros)]
-#[doc(hidden)]
-macro_rules! __impl_internal_bitflags {
- (
- $InternalBitFlags:ident: $T:ty, $PublicBitFlags:ident {
- $(
- $(#[$inner:ident $($args:tt)*])*
- const $Flag:tt = $value:expr;
- )*
- }
- ) => {
- // NOTE: This impl is also used to prevent using bits types from non-primitive types
- // in the `bitflags` macro. If this approach is changed, this guard will need to be
- // retained somehow
- impl $crate::__private::PublicFlags for $PublicBitFlags {
- type Primitive = $T;
- type Internal = $InternalBitFlags;
- }
-
- impl $crate::__private::core::default::Default for $InternalBitFlags {
- #[inline]
- fn default() -> Self {
- $InternalBitFlags::empty()
- }
- }
-
- impl $crate::__private::core::fmt::Debug for $InternalBitFlags {
- fn fmt(&self, f: &mut $crate::__private::core::fmt::Formatter<'_>) -> $crate::__private::core::fmt::Result {
- if self.is_empty() {
- // If no flags are set then write an empty hex flag to avoid
- // writing an empty string. In some contexts, like serialization,
- // an empty string is preferable, but it may be unexpected in
- // others for a format not to produce any output.
- //
- // We can remove this `0x0` and remain compatible with `FromStr`,
- // because an empty string will still parse to an empty set of flags,
- // just like `0x0` does.
- $crate::__private::core::write!(f, "{:#x}", <$T as $crate::Bits>::EMPTY)
- } else {
- $crate::__private::core::fmt::Display::fmt(self, f)
- }
- }
- }
-
- impl $crate::__private::core::fmt::Display for $InternalBitFlags {
- fn fmt(&self, f: &mut $crate::__private::core::fmt::Formatter<'_>) -> $crate::__private::core::fmt::Result {
- $crate::parser::to_writer(&$PublicBitFlags(*self), f)
- }
- }
-
- impl $crate::__private::core::str::FromStr for $InternalBitFlags {
- type Err = $crate::parser::ParseError;
-
- fn from_str(s: &str) -> $crate::__private::core::result::Result<Self, Self::Err> {
- $crate::parser::from_str::<$PublicBitFlags>(s).map(|flags| flags.0)
- }
- }
-
- impl $crate::__private::core::convert::AsRef<$T> for $InternalBitFlags {
- fn as_ref(&self) -> &$T {
- &self.0
- }
- }
-
- impl $crate::__private::core::convert::From<$T> for $InternalBitFlags {
- fn from(bits: $T) -> Self {
- Self::from_bits_retain(bits)
- }
- }
-
- // The internal flags type offers a similar API to the public one
-
- __impl_public_bitflags! {
- $InternalBitFlags: $T, $PublicBitFlags {
- $(
- $(#[$inner $($args)*])*
- const $Flag = $value;
- )*
- }
- }
-
- __impl_public_bitflags_ops! {
- $InternalBitFlags
- }
-
- __impl_public_bitflags_iter! {
- $InternalBitFlags: $T, $PublicBitFlags
- }
-
- impl $InternalBitFlags {
- /// Returns a mutable reference to the raw value of the flags currently stored.
- #[inline]
- pub fn bits_mut(&mut self) -> &mut $T {
- &mut self.0
- }
- }
- };
-}