From 971ced3ac8688e519171ec1c8087e3351a16ac32 Mon Sep 17 00:00:00 2001 From: dAxpeDDa Date: Sat, 27 May 2023 18:08:39 +0200 Subject: [PATCH] Bump `bitflags` to v2 --- Cargo.toml | 8 ++++---- src/back/glsl/features.rs | 1 + src/back/glsl/mod.rs | 1 + src/back/mod.rs | 2 +- src/back/spv/mod.rs | 2 ++ src/back/wgsl/writer.rs | 1 + src/front/glsl/ast.rs | 1 + src/front/spv/image.rs | 1 + src/front/spv/mod.rs | 2 +- src/lib.rs | 4 ++-- src/valid/analyzer.rs | 3 +++ src/valid/function.rs | 1 + src/valid/mod.rs | 3 +++ src/valid/type.rs | 1 + tests/snapshots.rs | 1 + 15 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0ddef7b939..faacd62a00 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,9 +28,9 @@ dot-out = [] glsl-in = ["pp-rs"] glsl-out = [] msl-out = [] -serialize = ["serde", "indexmap/serde-1"] -deserialize = ["serde", "indexmap/serde-1"] -arbitrary = ["dep:arbitrary", "indexmap/arbitrary"] +serialize = ["serde", "bitflags/serde", "indexmap/serde-1"] +deserialize = ["serde", "bitflags/serde", "indexmap/serde-1"] +arbitrary = ["dep:arbitrary", "bitflags/arbitrary", "indexmap/arbitrary"] spv-in = ["petgraph", "spirv"] spv-out = ["spirv"] wgsl-in = ["codespan-reporting", "hexf-parse", "termcolor", "unicode-xid"] @@ -45,7 +45,7 @@ harness = false [dependencies] arbitrary = { version = "1.0.2", features = ["derive"], optional = true } -bitflags = "1.0.5" +bitflags = "2.0.0" bit-set = "0.5" termcolor = { version = "1.0.4", optional = true } # remove termcolor dep when updating to the next version of codespan-reporting diff --git a/src/back/glsl/features.rs b/src/back/glsl/features.rs index 8392969b56..ec082d8a1b 100644 --- a/src/back/glsl/features.rs +++ b/src/back/glsl/features.rs @@ -7,6 +7,7 @@ use std::fmt::Write; bitflags::bitflags! { /// Structure used to encode additions to GLSL that aren't supported by all versions. + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct Features: u32 { /// Buffer address space support. const BUFFER_STORAGE = 1; diff --git a/src/back/glsl/mod.rs b/src/back/glsl/mod.rs index d6aff795c9..e1f851a015 100644 --- a/src/back/glsl/mod.rs +++ b/src/back/glsl/mod.rs @@ -216,6 +216,7 @@ bitflags::bitflags! { /// Configuration flags for the [`Writer`]. #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct WriterFlags: u32 { /// Flip output Y and extend Z from (0, 1) to (-1, 1). const ADJUST_COORDINATE_SPACE = 0x1; diff --git a/src/back/mod.rs b/src/back/mod.rs index 8467ee787b..ace38e3020 100644 --- a/src/back/mod.rs +++ b/src/back/mod.rs @@ -228,7 +228,7 @@ bitflags::bitflags! { /// we might as well make one back end's life easier.) /// /// [`RayDesc`]: crate::Module::generate_ray_desc_type - #[derive(Default)] + #[derive(Clone, Copy, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct RayFlag: u32 { const OPAQUE = 0x01; const NO_OPAQUE = 0x02; diff --git a/src/back/spv/mod.rs b/src/back/spv/mod.rs index 613912ef8d..0747068a13 100644 --- a/src/back/spv/mod.rs +++ b/src/back/spv/mod.rs @@ -176,6 +176,7 @@ struct LocalImageType { bitflags::bitflags! { /// Flags corresponding to the boolean(-ish) parameters to OpTypeImage. + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct ImageTypeFlags: u8 { const DEPTH = 0x1; const ARRAYED = 0x2; @@ -624,6 +625,7 @@ pub struct Writer { } bitflags::bitflags! { + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct WriterFlags: u32 { /// Include debug labels for everything. const DEBUG = 0x1; diff --git a/src/back/wgsl/writer.rs b/src/back/wgsl/writer.rs index da9f605fe3..c1b9ee2a3c 100644 --- a/src/back/wgsl/writer.rs +++ b/src/back/wgsl/writer.rs @@ -53,6 +53,7 @@ enum Indirection { bitflags::bitflags! { #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct WriterFlags: u32 { /// Always annotate the type information instead of inferring. const EXPLICIT_TYPES = 0x1; diff --git a/src/front/glsl/ast.rs b/src/front/glsl/ast.rs index 47c5a9e800..c9186089fd 100644 --- a/src/front/glsl/ast.rs +++ b/src/front/glsl/ast.rs @@ -67,6 +67,7 @@ bitflags::bitflags! { /// builtins overloads can't be generated unless explicitly used, since they might cause /// unneeded capabilities to be requested #[derive(Default)] + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct BuiltinVariations: u32 { /// Request the standard overloads const STANDARD = 1 << 0; diff --git a/src/front/spv/image.rs b/src/front/spv/image.rs index 757843f789..a7968cdfb1 100644 --- a/src/front/spv/image.rs +++ b/src/front/spv/image.rs @@ -10,6 +10,7 @@ pub(super) struct LookupSampledImage { bitflags::bitflags! { /// Flags describing sampling method. + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct SamplingFlags: u32 { /// Regular sampling. const REGULAR = 0x1; diff --git a/src/front/spv/mod.rs b/src/front/spv/mod.rs index dbab5bb002..a2124bfa87 100644 --- a/src/front/spv/mod.rs +++ b/src/front/spv/mod.rs @@ -168,7 +168,7 @@ impl crate::ImageDimension { type MemberIndex = u32; bitflags::bitflags! { - #[derive(Default)] + #[derive(Clone, Copy, Debug, Default)] struct DecorationFlags: u32 { const NON_READABLE = 0x1; const NON_WRITABLE = 0x2; diff --git a/src/lib.rs b/src/lib.rs index 2d4c3b3388..91cc31e580 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -501,7 +501,7 @@ bitflags::bitflags! { #[cfg_attr(feature = "serialize", derive(Serialize))] #[cfg_attr(feature = "deserialize", derive(Deserialize))] #[cfg_attr(feature = "arbitrary", derive(Arbitrary))] - #[derive(Default)] + #[derive(Clone, Copy, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct StorageAccess: u32 { /// Storage can be used as a source for load ops. const LOAD = 0x1; @@ -1195,7 +1195,7 @@ bitflags::bitflags! { #[cfg_attr(feature = "serialize", derive(Serialize))] #[cfg_attr(feature = "deserialize", derive(Deserialize))] #[cfg_attr(feature = "arbitrary", derive(Arbitrary))] - #[derive(Default)] + #[derive(Clone, Copy, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct Barrier: u32 { /// Barrier affects all `AddressSpace::Storage` accesses. const STORAGE = 0x1; diff --git a/src/valid/analyzer.rs b/src/valid/analyzer.rs index e3ada109ca..03ee07ac48 100644 --- a/src/valid/analyzer.rs +++ b/src/valid/analyzer.rs @@ -20,6 +20,7 @@ bitflags::bitflags! { /// Kinds of expressions that require uniform control flow. #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct UniformityRequirements: u8 { const WORK_GROUP_BARRIER = 0x1; const DERIVATIVE = 0x2; @@ -59,6 +60,7 @@ impl Uniformity { } bitflags::bitflags! { + #[derive(Clone, Copy, Debug, PartialEq)] struct ExitFlags: u8 { /// Control flow may return from the function, which makes all the /// subsequent statements within the current function (only!) @@ -117,6 +119,7 @@ bitflags::bitflags! { /// Indicates how a global variable is used. #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct GlobalUse: u8 { /// Data will be read from the variable. const READ = 0x1; diff --git a/src/valid/function.rs b/src/valid/function.rs index 280ca06c6e..41f31b5658 100644 --- a/src/valid/function.rs +++ b/src/valid/function.rs @@ -161,6 +161,7 @@ pub enum FunctionError { bitflags::bitflags! { #[repr(transparent)] + #[derive(Clone, Copy)] struct ControlFlowAbility: u8 { /// The control can return out of this block. const RETURN = 0x1; diff --git a/src/valid/mod.rs b/src/valid/mod.rs index 3e689160b5..d04e149094 100644 --- a/src/valid/mod.rs +++ b/src/valid/mod.rs @@ -53,6 +53,7 @@ bitflags::bitflags! { /// by default.) #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct ValidationFlags: u8 { /// Expressions. #[cfg(feature = "validate")] @@ -86,6 +87,7 @@ bitflags::bitflags! { #[must_use] #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct Capabilities: u16 { /// Support for [`AddressSpace:PushConstant`]. const PUSH_CONSTANT = 0x1; @@ -126,6 +128,7 @@ bitflags::bitflags! { /// Validation flags. #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct ShaderStages: u8 { const VERTEX = 0x1; const FRAGMENT = 0x2; diff --git a/src/valid/type.rs b/src/valid/type.rs index db7eec92aa..e5a0f1e3b3 100644 --- a/src/valid/type.rs +++ b/src/valid/type.rs @@ -9,6 +9,7 @@ bitflags::bitflags! { #[cfg_attr(feature = "serialize", derive(serde::Serialize))] #[cfg_attr(feature = "deserialize", derive(serde::Deserialize))] #[repr(transparent)] + #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub struct TypeFlags: u8 { /// Can be used for data variables. /// diff --git a/tests/snapshots.rs b/tests/snapshots.rs index 7a0d4333db..9362a66738 100644 --- a/tests/snapshots.rs +++ b/tests/snapshots.rs @@ -11,6 +11,7 @@ const BASE_DIR_IN: &str = "tests/in"; const BASE_DIR_OUT: &str = "tests/out"; bitflags::bitflags! { + #[derive(Clone, Copy)] struct Targets: u32 { const IR = 0x1; const ANALYSIS = 0x2;