{-# OPTIONS_HADDOCK ignore-exports#-}
{-# LANGUAGE DataKinds                  #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms            #-}
{-# LANGUAGE Strict                     #-}
module Graphics.Vulkan.Types.Enum.Validation
       (VkValidationCacheHeaderVersionEXT(VkValidationCacheHeaderVersionEXT,
                                          VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT),
        VkValidationCheckEXT(VkValidationCheckEXT,
                             VK_VALIDATION_CHECK_ALL_EXT, VK_VALIDATION_CHECK_SHADERS_EXT),
        VkValidationFeatureDisableEXT(VkValidationFeatureDisableEXT,
                                      VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
                                      VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
                                      VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
                                      VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
                                      VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
                                      VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
                                      VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT),
        VkValidationFeatureEnableEXT(VkValidationFeatureEnableEXT,
                                     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
                                     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
                                     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
                                     VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,
                                     VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT))
       where
import Foreign.Storable                (Storable)
import GHC.Read                        (choose, expectP)
import Graphics.Vulkan.Marshal         (Int32)
import Text.ParserCombinators.ReadPrec (prec, step, (+++))
import Text.Read                       (Read (..), parens)
import Text.Read.Lex                   (Lexeme (..))

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkValidationCacheHeaderVersionEXT VkValidationCacheHeaderVersionEXT registry at www.khronos.org>
newtype VkValidationCacheHeaderVersionEXT = VkValidationCacheHeaderVersionEXT Int32
                                            deriving (VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
(VkValidationCacheHeaderVersionEXT
 -> VkValidationCacheHeaderVersionEXT -> Bool)
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT -> Bool)
-> Eq VkValidationCacheHeaderVersionEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
$c/= :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
== :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
$c== :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
Eq, Eq VkValidationCacheHeaderVersionEXT
Eq VkValidationCacheHeaderVersionEXT
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT -> Ordering)
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT -> Bool)
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT -> Bool)
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT -> Bool)
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT -> Bool)
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT)
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT)
-> Ord VkValidationCacheHeaderVersionEXT
VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Ordering
VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
$cmin :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
max :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
$cmax :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
>= :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
$c>= :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
> :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
$c> :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
<= :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
$c<= :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
< :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
$c< :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Bool
compare :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Ordering
$ccompare :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> Ordering
Ord, Int -> VkValidationCacheHeaderVersionEXT
VkValidationCacheHeaderVersionEXT -> Int
VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
(VkValidationCacheHeaderVersionEXT
 -> VkValidationCacheHeaderVersionEXT)
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT)
-> (Int -> VkValidationCacheHeaderVersionEXT)
-> (VkValidationCacheHeaderVersionEXT -> Int)
-> (VkValidationCacheHeaderVersionEXT
    -> [VkValidationCacheHeaderVersionEXT])
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT
    -> [VkValidationCacheHeaderVersionEXT])
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT
    -> [VkValidationCacheHeaderVersionEXT])
-> (VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT
    -> [VkValidationCacheHeaderVersionEXT])
-> Enum VkValidationCacheHeaderVersionEXT
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
$cenumFromThenTo :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
enumFromTo :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
$cenumFromTo :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
enumFromThen :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
$cenumFromThen :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
enumFrom :: VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
$cenumFrom :: VkValidationCacheHeaderVersionEXT
-> [VkValidationCacheHeaderVersionEXT]
fromEnum :: VkValidationCacheHeaderVersionEXT -> Int
$cfromEnum :: VkValidationCacheHeaderVersionEXT -> Int
toEnum :: Int -> VkValidationCacheHeaderVersionEXT
$ctoEnum :: Int -> VkValidationCacheHeaderVersionEXT
pred :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
$cpred :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
succ :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
$csucc :: VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT
Enum, Ptr VkValidationCacheHeaderVersionEXT
-> IO VkValidationCacheHeaderVersionEXT
Ptr VkValidationCacheHeaderVersionEXT
-> Int -> IO VkValidationCacheHeaderVersionEXT
Ptr VkValidationCacheHeaderVersionEXT
-> Int -> VkValidationCacheHeaderVersionEXT -> IO ()
Ptr VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> IO ()
VkValidationCacheHeaderVersionEXT -> Int
(VkValidationCacheHeaderVersionEXT -> Int)
-> (VkValidationCacheHeaderVersionEXT -> Int)
-> (Ptr VkValidationCacheHeaderVersionEXT
    -> Int -> IO VkValidationCacheHeaderVersionEXT)
-> (Ptr VkValidationCacheHeaderVersionEXT
    -> Int -> VkValidationCacheHeaderVersionEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO VkValidationCacheHeaderVersionEXT)
-> (forall b.
    Ptr b -> Int -> VkValidationCacheHeaderVersionEXT -> IO ())
-> (Ptr VkValidationCacheHeaderVersionEXT
    -> IO VkValidationCacheHeaderVersionEXT)
-> (Ptr VkValidationCacheHeaderVersionEXT
    -> VkValidationCacheHeaderVersionEXT -> IO ())
-> Storable VkValidationCacheHeaderVersionEXT
forall b. Ptr b -> Int -> IO VkValidationCacheHeaderVersionEXT
forall b.
Ptr b -> Int -> VkValidationCacheHeaderVersionEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> IO ()
$cpoke :: Ptr VkValidationCacheHeaderVersionEXT
-> VkValidationCacheHeaderVersionEXT -> IO ()
peek :: Ptr VkValidationCacheHeaderVersionEXT
-> IO VkValidationCacheHeaderVersionEXT
$cpeek :: Ptr VkValidationCacheHeaderVersionEXT
-> IO VkValidationCacheHeaderVersionEXT
pokeByteOff :: forall b.
Ptr b -> Int -> VkValidationCacheHeaderVersionEXT -> IO ()
$cpokeByteOff :: forall b.
Ptr b -> Int -> VkValidationCacheHeaderVersionEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkValidationCacheHeaderVersionEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkValidationCacheHeaderVersionEXT
pokeElemOff :: Ptr VkValidationCacheHeaderVersionEXT
-> Int -> VkValidationCacheHeaderVersionEXT -> IO ()
$cpokeElemOff :: Ptr VkValidationCacheHeaderVersionEXT
-> Int -> VkValidationCacheHeaderVersionEXT -> IO ()
peekElemOff :: Ptr VkValidationCacheHeaderVersionEXT
-> Int -> IO VkValidationCacheHeaderVersionEXT
$cpeekElemOff :: Ptr VkValidationCacheHeaderVersionEXT
-> Int -> IO VkValidationCacheHeaderVersionEXT
alignment :: VkValidationCacheHeaderVersionEXT -> Int
$calignment :: VkValidationCacheHeaderVersionEXT -> Int
sizeOf :: VkValidationCacheHeaderVersionEXT -> Int
$csizeOf :: VkValidationCacheHeaderVersionEXT -> Int
Storable)

instance Show VkValidationCacheHeaderVersionEXT where
    showsPrec :: Int -> VkValidationCacheHeaderVersionEXT -> ShowS
showsPrec Int
_ VkValidationCacheHeaderVersionEXT
VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"
    showsPrec Int
p (VkValidationCacheHeaderVersionEXT Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkValidationCacheHeaderVersionEXT " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkValidationCacheHeaderVersionEXT where
    readPrec :: ReadPrec VkValidationCacheHeaderVersionEXT
readPrec
      = ReadPrec VkValidationCacheHeaderVersionEXT
-> ReadPrec VkValidationCacheHeaderVersionEXT
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkValidationCacheHeaderVersionEXT)]
-> ReadPrec VkValidationCacheHeaderVersionEXT
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT",
               VkValidationCacheHeaderVersionEXT
-> ReadPrec VkValidationCacheHeaderVersionEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationCacheHeaderVersionEXT
VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT)]
             ReadPrec VkValidationCacheHeaderVersionEXT
-> ReadPrec VkValidationCacheHeaderVersionEXT
-> ReadPrec VkValidationCacheHeaderVersionEXT
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec VkValidationCacheHeaderVersionEXT
-> ReadPrec VkValidationCacheHeaderVersionEXT
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkValidationCacheHeaderVersionEXT") ReadPrec ()
-> ReadPrec VkValidationCacheHeaderVersionEXT
-> ReadPrec VkValidationCacheHeaderVersionEXT
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkValidationCacheHeaderVersionEXT
VkValidationCacheHeaderVersionEXT (Int32 -> VkValidationCacheHeaderVersionEXT)
-> ReadPrec Int32 -> ReadPrec VkValidationCacheHeaderVersionEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT ::
        VkValidationCacheHeaderVersionEXT

pattern $bVK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT :: VkValidationCacheHeaderVersionEXT
$mVK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT :: forall {r}.
VkValidationCacheHeaderVersionEXT
-> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT =
        VkValidationCacheHeaderVersionEXT 1

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkValidationCheckEXT VkValidationCheckEXT registry at www.khronos.org>
newtype VkValidationCheckEXT = VkValidationCheckEXT Int32
                               deriving (VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
(VkValidationCheckEXT -> VkValidationCheckEXT -> Bool)
-> (VkValidationCheckEXT -> VkValidationCheckEXT -> Bool)
-> Eq VkValidationCheckEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
$c/= :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
== :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
$c== :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
Eq, Eq VkValidationCheckEXT
Eq VkValidationCheckEXT
-> (VkValidationCheckEXT -> VkValidationCheckEXT -> Ordering)
-> (VkValidationCheckEXT -> VkValidationCheckEXT -> Bool)
-> (VkValidationCheckEXT -> VkValidationCheckEXT -> Bool)
-> (VkValidationCheckEXT -> VkValidationCheckEXT -> Bool)
-> (VkValidationCheckEXT -> VkValidationCheckEXT -> Bool)
-> (VkValidationCheckEXT
    -> VkValidationCheckEXT -> VkValidationCheckEXT)
-> (VkValidationCheckEXT
    -> VkValidationCheckEXT -> VkValidationCheckEXT)
-> Ord VkValidationCheckEXT
VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
VkValidationCheckEXT -> VkValidationCheckEXT -> Ordering
VkValidationCheckEXT
-> VkValidationCheckEXT -> VkValidationCheckEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: VkValidationCheckEXT
-> VkValidationCheckEXT -> VkValidationCheckEXT
$cmin :: VkValidationCheckEXT
-> VkValidationCheckEXT -> VkValidationCheckEXT
max :: VkValidationCheckEXT
-> VkValidationCheckEXT -> VkValidationCheckEXT
$cmax :: VkValidationCheckEXT
-> VkValidationCheckEXT -> VkValidationCheckEXT
>= :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
$c>= :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
> :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
$c> :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
<= :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
$c<= :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
< :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
$c< :: VkValidationCheckEXT -> VkValidationCheckEXT -> Bool
compare :: VkValidationCheckEXT -> VkValidationCheckEXT -> Ordering
$ccompare :: VkValidationCheckEXT -> VkValidationCheckEXT -> Ordering
Ord, Int -> VkValidationCheckEXT
VkValidationCheckEXT -> Int
VkValidationCheckEXT -> [VkValidationCheckEXT]
VkValidationCheckEXT -> VkValidationCheckEXT
VkValidationCheckEXT
-> VkValidationCheckEXT -> [VkValidationCheckEXT]
VkValidationCheckEXT
-> VkValidationCheckEXT
-> VkValidationCheckEXT
-> [VkValidationCheckEXT]
(VkValidationCheckEXT -> VkValidationCheckEXT)
-> (VkValidationCheckEXT -> VkValidationCheckEXT)
-> (Int -> VkValidationCheckEXT)
-> (VkValidationCheckEXT -> Int)
-> (VkValidationCheckEXT -> [VkValidationCheckEXT])
-> (VkValidationCheckEXT
    -> VkValidationCheckEXT -> [VkValidationCheckEXT])
-> (VkValidationCheckEXT
    -> VkValidationCheckEXT -> [VkValidationCheckEXT])
-> (VkValidationCheckEXT
    -> VkValidationCheckEXT
    -> VkValidationCheckEXT
    -> [VkValidationCheckEXT])
-> Enum VkValidationCheckEXT
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkValidationCheckEXT
-> VkValidationCheckEXT
-> VkValidationCheckEXT
-> [VkValidationCheckEXT]
$cenumFromThenTo :: VkValidationCheckEXT
-> VkValidationCheckEXT
-> VkValidationCheckEXT
-> [VkValidationCheckEXT]
enumFromTo :: VkValidationCheckEXT
-> VkValidationCheckEXT -> [VkValidationCheckEXT]
$cenumFromTo :: VkValidationCheckEXT
-> VkValidationCheckEXT -> [VkValidationCheckEXT]
enumFromThen :: VkValidationCheckEXT
-> VkValidationCheckEXT -> [VkValidationCheckEXT]
$cenumFromThen :: VkValidationCheckEXT
-> VkValidationCheckEXT -> [VkValidationCheckEXT]
enumFrom :: VkValidationCheckEXT -> [VkValidationCheckEXT]
$cenumFrom :: VkValidationCheckEXT -> [VkValidationCheckEXT]
fromEnum :: VkValidationCheckEXT -> Int
$cfromEnum :: VkValidationCheckEXT -> Int
toEnum :: Int -> VkValidationCheckEXT
$ctoEnum :: Int -> VkValidationCheckEXT
pred :: VkValidationCheckEXT -> VkValidationCheckEXT
$cpred :: VkValidationCheckEXT -> VkValidationCheckEXT
succ :: VkValidationCheckEXT -> VkValidationCheckEXT
$csucc :: VkValidationCheckEXT -> VkValidationCheckEXT
Enum, Ptr VkValidationCheckEXT -> IO VkValidationCheckEXT
Ptr VkValidationCheckEXT -> Int -> IO VkValidationCheckEXT
Ptr VkValidationCheckEXT -> Int -> VkValidationCheckEXT -> IO ()
Ptr VkValidationCheckEXT -> VkValidationCheckEXT -> IO ()
VkValidationCheckEXT -> Int
(VkValidationCheckEXT -> Int)
-> (VkValidationCheckEXT -> Int)
-> (Ptr VkValidationCheckEXT -> Int -> IO VkValidationCheckEXT)
-> (Ptr VkValidationCheckEXT
    -> Int -> VkValidationCheckEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO VkValidationCheckEXT)
-> (forall b. Ptr b -> Int -> VkValidationCheckEXT -> IO ())
-> (Ptr VkValidationCheckEXT -> IO VkValidationCheckEXT)
-> (Ptr VkValidationCheckEXT -> VkValidationCheckEXT -> IO ())
-> Storable VkValidationCheckEXT
forall b. Ptr b -> Int -> IO VkValidationCheckEXT
forall b. Ptr b -> Int -> VkValidationCheckEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr VkValidationCheckEXT -> VkValidationCheckEXT -> IO ()
$cpoke :: Ptr VkValidationCheckEXT -> VkValidationCheckEXT -> IO ()
peek :: Ptr VkValidationCheckEXT -> IO VkValidationCheckEXT
$cpeek :: Ptr VkValidationCheckEXT -> IO VkValidationCheckEXT
pokeByteOff :: forall b. Ptr b -> Int -> VkValidationCheckEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkValidationCheckEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkValidationCheckEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkValidationCheckEXT
pokeElemOff :: Ptr VkValidationCheckEXT -> Int -> VkValidationCheckEXT -> IO ()
$cpokeElemOff :: Ptr VkValidationCheckEXT -> Int -> VkValidationCheckEXT -> IO ()
peekElemOff :: Ptr VkValidationCheckEXT -> Int -> IO VkValidationCheckEXT
$cpeekElemOff :: Ptr VkValidationCheckEXT -> Int -> IO VkValidationCheckEXT
alignment :: VkValidationCheckEXT -> Int
$calignment :: VkValidationCheckEXT -> Int
sizeOf :: VkValidationCheckEXT -> Int
$csizeOf :: VkValidationCheckEXT -> Int
Storable)

instance Show VkValidationCheckEXT where
    showsPrec :: Int -> VkValidationCheckEXT -> ShowS
showsPrec Int
_ VkValidationCheckEXT
VK_VALIDATION_CHECK_ALL_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_CHECK_ALL_EXT"
    showsPrec Int
_ VkValidationCheckEXT
VK_VALIDATION_CHECK_SHADERS_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_CHECK_SHADERS_EXT"
    showsPrec Int
p (VkValidationCheckEXT Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkValidationCheckEXT " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkValidationCheckEXT where
    readPrec :: ReadPrec VkValidationCheckEXT
readPrec
      = ReadPrec VkValidationCheckEXT -> ReadPrec VkValidationCheckEXT
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkValidationCheckEXT)]
-> ReadPrec VkValidationCheckEXT
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_VALIDATION_CHECK_ALL_EXT", VkValidationCheckEXT -> ReadPrec VkValidationCheckEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationCheckEXT
VK_VALIDATION_CHECK_ALL_EXT),
              (String
"VK_VALIDATION_CHECK_SHADERS_EXT",
               VkValidationCheckEXT -> ReadPrec VkValidationCheckEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationCheckEXT
VK_VALIDATION_CHECK_SHADERS_EXT)]
             ReadPrec VkValidationCheckEXT
-> ReadPrec VkValidationCheckEXT -> ReadPrec VkValidationCheckEXT
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec VkValidationCheckEXT -> ReadPrec VkValidationCheckEXT
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkValidationCheckEXT") ReadPrec ()
-> ReadPrec VkValidationCheckEXT -> ReadPrec VkValidationCheckEXT
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkValidationCheckEXT
VkValidationCheckEXT (Int32 -> VkValidationCheckEXT)
-> ReadPrec Int32 -> ReadPrec VkValidationCheckEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_VALIDATION_CHECK_ALL_EXT :: VkValidationCheckEXT

pattern $bVK_VALIDATION_CHECK_ALL_EXT :: VkValidationCheckEXT
$mVK_VALIDATION_CHECK_ALL_EXT :: forall {r}.
VkValidationCheckEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_CHECK_ALL_EXT = VkValidationCheckEXT 0

pattern VK_VALIDATION_CHECK_SHADERS_EXT :: VkValidationCheckEXT

pattern $bVK_VALIDATION_CHECK_SHADERS_EXT :: VkValidationCheckEXT
$mVK_VALIDATION_CHECK_SHADERS_EXT :: forall {r}.
VkValidationCheckEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_CHECK_SHADERS_EXT = VkValidationCheckEXT 1

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkValidationFeatureDisableEXT VkValidationFeatureDisableEXT registry at www.khronos.org>
newtype VkValidationFeatureDisableEXT = VkValidationFeatureDisableEXT Int32
                                        deriving (VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
(VkValidationFeatureDisableEXT
 -> VkValidationFeatureDisableEXT -> Bool)
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT -> Bool)
-> Eq VkValidationFeatureDisableEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
$c/= :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
== :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
$c== :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
Eq, Eq VkValidationFeatureDisableEXT
Eq VkValidationFeatureDisableEXT
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT -> Ordering)
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT -> Bool)
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT -> Bool)
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT -> Bool)
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT -> Bool)
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT)
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT)
-> Ord VkValidationFeatureDisableEXT
VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Ordering
VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
$cmin :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
max :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
$cmax :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
>= :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
$c>= :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
> :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
$c> :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
<= :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
$c<= :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
< :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
$c< :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Bool
compare :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Ordering
$ccompare :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> Ordering
Ord, Int -> VkValidationFeatureDisableEXT
VkValidationFeatureDisableEXT -> Int
VkValidationFeatureDisableEXT -> [VkValidationFeatureDisableEXT]
VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> [VkValidationFeatureDisableEXT]
VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT
-> [VkValidationFeatureDisableEXT]
(VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT)
-> (VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT)
-> (Int -> VkValidationFeatureDisableEXT)
-> (VkValidationFeatureDisableEXT -> Int)
-> (VkValidationFeatureDisableEXT
    -> [VkValidationFeatureDisableEXT])
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT
    -> [VkValidationFeatureDisableEXT])
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT
    -> [VkValidationFeatureDisableEXT])
-> (VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT
    -> [VkValidationFeatureDisableEXT])
-> Enum VkValidationFeatureDisableEXT
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT
-> [VkValidationFeatureDisableEXT]
$cenumFromThenTo :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT
-> [VkValidationFeatureDisableEXT]
enumFromTo :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> [VkValidationFeatureDisableEXT]
$cenumFromTo :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> [VkValidationFeatureDisableEXT]
enumFromThen :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> [VkValidationFeatureDisableEXT]
$cenumFromThen :: VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> [VkValidationFeatureDisableEXT]
enumFrom :: VkValidationFeatureDisableEXT -> [VkValidationFeatureDisableEXT]
$cenumFrom :: VkValidationFeatureDisableEXT -> [VkValidationFeatureDisableEXT]
fromEnum :: VkValidationFeatureDisableEXT -> Int
$cfromEnum :: VkValidationFeatureDisableEXT -> Int
toEnum :: Int -> VkValidationFeatureDisableEXT
$ctoEnum :: Int -> VkValidationFeatureDisableEXT
pred :: VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
$cpred :: VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
succ :: VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
$csucc :: VkValidationFeatureDisableEXT -> VkValidationFeatureDisableEXT
Enum, Ptr VkValidationFeatureDisableEXT
-> IO VkValidationFeatureDisableEXT
Ptr VkValidationFeatureDisableEXT
-> Int -> IO VkValidationFeatureDisableEXT
Ptr VkValidationFeatureDisableEXT
-> Int -> VkValidationFeatureDisableEXT -> IO ()
Ptr VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> IO ()
VkValidationFeatureDisableEXT -> Int
(VkValidationFeatureDisableEXT -> Int)
-> (VkValidationFeatureDisableEXT -> Int)
-> (Ptr VkValidationFeatureDisableEXT
    -> Int -> IO VkValidationFeatureDisableEXT)
-> (Ptr VkValidationFeatureDisableEXT
    -> Int -> VkValidationFeatureDisableEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO VkValidationFeatureDisableEXT)
-> (forall b.
    Ptr b -> Int -> VkValidationFeatureDisableEXT -> IO ())
-> (Ptr VkValidationFeatureDisableEXT
    -> IO VkValidationFeatureDisableEXT)
-> (Ptr VkValidationFeatureDisableEXT
    -> VkValidationFeatureDisableEXT -> IO ())
-> Storable VkValidationFeatureDisableEXT
forall b. Ptr b -> Int -> IO VkValidationFeatureDisableEXT
forall b. Ptr b -> Int -> VkValidationFeatureDisableEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> IO ()
$cpoke :: Ptr VkValidationFeatureDisableEXT
-> VkValidationFeatureDisableEXT -> IO ()
peek :: Ptr VkValidationFeatureDisableEXT
-> IO VkValidationFeatureDisableEXT
$cpeek :: Ptr VkValidationFeatureDisableEXT
-> IO VkValidationFeatureDisableEXT
pokeByteOff :: forall b. Ptr b -> Int -> VkValidationFeatureDisableEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkValidationFeatureDisableEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkValidationFeatureDisableEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkValidationFeatureDisableEXT
pokeElemOff :: Ptr VkValidationFeatureDisableEXT
-> Int -> VkValidationFeatureDisableEXT -> IO ()
$cpokeElemOff :: Ptr VkValidationFeatureDisableEXT
-> Int -> VkValidationFeatureDisableEXT -> IO ()
peekElemOff :: Ptr VkValidationFeatureDisableEXT
-> Int -> IO VkValidationFeatureDisableEXT
$cpeekElemOff :: Ptr VkValidationFeatureDisableEXT
-> Int -> IO VkValidationFeatureDisableEXT
alignment :: VkValidationFeatureDisableEXT -> Int
$calignment :: VkValidationFeatureDisableEXT -> Int
sizeOf :: VkValidationFeatureDisableEXT -> Int
$csizeOf :: VkValidationFeatureDisableEXT -> Int
Storable)

instance Show VkValidationFeatureDisableEXT where
    showsPrec :: Int -> VkValidationFeatureDisableEXT -> ShowS
showsPrec Int
_ VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_ALL_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_DISABLE_ALL_EXT"
    showsPrec Int
_ VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT"
    showsPrec Int
_ VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT"
    showsPrec Int
_ VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT"
    showsPrec Int
_ VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT"
    showsPrec Int
_ VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT"
    showsPrec Int
_ VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT"
    showsPrec Int
p (VkValidationFeatureDisableEXT Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkValidationFeatureDisableEXT " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkValidationFeatureDisableEXT where
    readPrec :: ReadPrec VkValidationFeatureDisableEXT
readPrec
      = ReadPrec VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkValidationFeatureDisableEXT)]
-> ReadPrec VkValidationFeatureDisableEXT
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_VALIDATION_FEATURE_DISABLE_ALL_EXT",
               VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_ALL_EXT),
              (String
"VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT",
               VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT),
              (String
"VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT",
               VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT),
              (String
"VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT",
               VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT),
              (String
"VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT",
               VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT),
              (String
"VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT",
               VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT),
              (String
"VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT",
               VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureDisableEXT
VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT)]
             ReadPrec VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkValidationFeatureDisableEXT") ReadPrec ()
-> ReadPrec VkValidationFeatureDisableEXT
-> ReadPrec VkValidationFeatureDisableEXT
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkValidationFeatureDisableEXT
VkValidationFeatureDisableEXT (Int32 -> VkValidationFeatureDisableEXT)
-> ReadPrec Int32 -> ReadPrec VkValidationFeatureDisableEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_VALIDATION_FEATURE_DISABLE_ALL_EXT ::
        VkValidationFeatureDisableEXT

pattern $bVK_VALIDATION_FEATURE_DISABLE_ALL_EXT :: VkValidationFeatureDisableEXT
$mVK_VALIDATION_FEATURE_DISABLE_ALL_EXT :: forall {r}.
VkValidationFeatureDisableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_DISABLE_ALL_EXT =
        VkValidationFeatureDisableEXT 0

pattern VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT ::
        VkValidationFeatureDisableEXT

pattern $bVK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT :: VkValidationFeatureDisableEXT
$mVK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT :: forall {r}.
VkValidationFeatureDisableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT =
        VkValidationFeatureDisableEXT 1

pattern VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT ::
        VkValidationFeatureDisableEXT

pattern $bVK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT :: VkValidationFeatureDisableEXT
$mVK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT :: forall {r}.
VkValidationFeatureDisableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT =
        VkValidationFeatureDisableEXT 2

pattern VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT ::
        VkValidationFeatureDisableEXT

pattern $bVK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT :: VkValidationFeatureDisableEXT
$mVK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT :: forall {r}.
VkValidationFeatureDisableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT =
        VkValidationFeatureDisableEXT 3

pattern VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT ::
        VkValidationFeatureDisableEXT

pattern $bVK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT :: VkValidationFeatureDisableEXT
$mVK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT :: forall {r}.
VkValidationFeatureDisableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT =
        VkValidationFeatureDisableEXT 4

pattern VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT ::
        VkValidationFeatureDisableEXT

pattern $bVK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT :: VkValidationFeatureDisableEXT
$mVK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT :: forall {r}.
VkValidationFeatureDisableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT =
        VkValidationFeatureDisableEXT 5

pattern VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT ::
        VkValidationFeatureDisableEXT

pattern $bVK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT :: VkValidationFeatureDisableEXT
$mVK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT :: forall {r}.
VkValidationFeatureDisableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT =
        VkValidationFeatureDisableEXT 6

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkValidationFeatureEnableEXT VkValidationFeatureEnableEXT registry at www.khronos.org>
newtype VkValidationFeatureEnableEXT = VkValidationFeatureEnableEXT Int32
                                       deriving (VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
(VkValidationFeatureEnableEXT
 -> VkValidationFeatureEnableEXT -> Bool)
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> Bool)
-> Eq VkValidationFeatureEnableEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
$c/= :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
== :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
$c== :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
Eq, Eq VkValidationFeatureEnableEXT
Eq VkValidationFeatureEnableEXT
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> Ordering)
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> Bool)
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> Bool)
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> Bool)
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> Bool)
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT)
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT)
-> Ord VkValidationFeatureEnableEXT
VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Ordering
VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
$cmin :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
max :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
$cmax :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
>= :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
$c>= :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
> :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
$c> :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
<= :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
$c<= :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
< :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
$c< :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Bool
compare :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Ordering
$ccompare :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> Ordering
Ord, Int -> VkValidationFeatureEnableEXT
VkValidationFeatureEnableEXT -> Int
VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT]
VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT]
VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT
-> [VkValidationFeatureEnableEXT]
(VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT)
-> (VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT)
-> (Int -> VkValidationFeatureEnableEXT)
-> (VkValidationFeatureEnableEXT -> Int)
-> (VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT])
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT])
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT])
-> (VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT
    -> [VkValidationFeatureEnableEXT])
-> Enum VkValidationFeatureEnableEXT
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT
-> [VkValidationFeatureEnableEXT]
$cenumFromThenTo :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT
-> [VkValidationFeatureEnableEXT]
enumFromTo :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT]
$cenumFromTo :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT]
enumFromThen :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT]
$cenumFromThen :: VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT]
enumFrom :: VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT]
$cenumFrom :: VkValidationFeatureEnableEXT -> [VkValidationFeatureEnableEXT]
fromEnum :: VkValidationFeatureEnableEXT -> Int
$cfromEnum :: VkValidationFeatureEnableEXT -> Int
toEnum :: Int -> VkValidationFeatureEnableEXT
$ctoEnum :: Int -> VkValidationFeatureEnableEXT
pred :: VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
$cpred :: VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
succ :: VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
$csucc :: VkValidationFeatureEnableEXT -> VkValidationFeatureEnableEXT
Enum, Ptr VkValidationFeatureEnableEXT -> IO VkValidationFeatureEnableEXT
Ptr VkValidationFeatureEnableEXT
-> Int -> IO VkValidationFeatureEnableEXT
Ptr VkValidationFeatureEnableEXT
-> Int -> VkValidationFeatureEnableEXT -> IO ()
Ptr VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> IO ()
VkValidationFeatureEnableEXT -> Int
(VkValidationFeatureEnableEXT -> Int)
-> (VkValidationFeatureEnableEXT -> Int)
-> (Ptr VkValidationFeatureEnableEXT
    -> Int -> IO VkValidationFeatureEnableEXT)
-> (Ptr VkValidationFeatureEnableEXT
    -> Int -> VkValidationFeatureEnableEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO VkValidationFeatureEnableEXT)
-> (forall b.
    Ptr b -> Int -> VkValidationFeatureEnableEXT -> IO ())
-> (Ptr VkValidationFeatureEnableEXT
    -> IO VkValidationFeatureEnableEXT)
-> (Ptr VkValidationFeatureEnableEXT
    -> VkValidationFeatureEnableEXT -> IO ())
-> Storable VkValidationFeatureEnableEXT
forall b. Ptr b -> Int -> IO VkValidationFeatureEnableEXT
forall b. Ptr b -> Int -> VkValidationFeatureEnableEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> IO ()
$cpoke :: Ptr VkValidationFeatureEnableEXT
-> VkValidationFeatureEnableEXT -> IO ()
peek :: Ptr VkValidationFeatureEnableEXT -> IO VkValidationFeatureEnableEXT
$cpeek :: Ptr VkValidationFeatureEnableEXT -> IO VkValidationFeatureEnableEXT
pokeByteOff :: forall b. Ptr b -> Int -> VkValidationFeatureEnableEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkValidationFeatureEnableEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkValidationFeatureEnableEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkValidationFeatureEnableEXT
pokeElemOff :: Ptr VkValidationFeatureEnableEXT
-> Int -> VkValidationFeatureEnableEXT -> IO ()
$cpokeElemOff :: Ptr VkValidationFeatureEnableEXT
-> Int -> VkValidationFeatureEnableEXT -> IO ()
peekElemOff :: Ptr VkValidationFeatureEnableEXT
-> Int -> IO VkValidationFeatureEnableEXT
$cpeekElemOff :: Ptr VkValidationFeatureEnableEXT
-> Int -> IO VkValidationFeatureEnableEXT
alignment :: VkValidationFeatureEnableEXT -> Int
$calignment :: VkValidationFeatureEnableEXT -> Int
sizeOf :: VkValidationFeatureEnableEXT -> Int
$csizeOf :: VkValidationFeatureEnableEXT -> Int
Storable)

instance Show VkValidationFeatureEnableEXT where
    showsPrec :: Int -> VkValidationFeatureEnableEXT -> ShowS
showsPrec Int
_ VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT"
    showsPrec Int
_
      VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT
      = String -> ShowS
showString
          String
"VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT"
    showsPrec Int
_ VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT"
    showsPrec Int
_ VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
      = String -> ShowS
showString String
"VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT"
    showsPrec Int
_
      VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
      = String -> ShowS
showString
          String
"VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT"
    showsPrec Int
p (VkValidationFeatureEnableEXT Int32
x)
      = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
          (String -> ShowS
showString String
"VkValidationFeatureEnableEXT " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkValidationFeatureEnableEXT where
    readPrec :: ReadPrec VkValidationFeatureEnableEXT
readPrec
      = ReadPrec VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
forall a. ReadPrec a -> ReadPrec a
parens
          ([(String, ReadPrec VkValidationFeatureEnableEXT)]
-> ReadPrec VkValidationFeatureEnableEXT
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
             [(String
"VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT",
               VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT),
              (String
"VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT",
               VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure
                 VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT),
              (String
"VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT",
               VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT),
              (String
"VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT",
               VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT),
              (String
"VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT",
               VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkValidationFeatureEnableEXT
VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT)]
             ReadPrec VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
             Int
-> ReadPrec VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
               (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkValidationFeatureEnableEXT") ReadPrec ()
-> ReadPrec VkValidationFeatureEnableEXT
-> ReadPrec VkValidationFeatureEnableEXT
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                  (Int32 -> VkValidationFeatureEnableEXT
VkValidationFeatureEnableEXT (Int32 -> VkValidationFeatureEnableEXT)
-> ReadPrec Int32 -> ReadPrec VkValidationFeatureEnableEXT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT ::
        VkValidationFeatureEnableEXT

pattern $bVK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT :: VkValidationFeatureEnableEXT
$mVK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT :: forall {r}.
VkValidationFeatureEnableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT =
        VkValidationFeatureEnableEXT 0

pattern VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT
        :: VkValidationFeatureEnableEXT

pattern $bVK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT :: VkValidationFeatureEnableEXT
$mVK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT :: forall {r}.
VkValidationFeatureEnableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT
        = VkValidationFeatureEnableEXT 1

pattern VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT ::
        VkValidationFeatureEnableEXT

pattern $bVK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT :: VkValidationFeatureEnableEXT
$mVK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT :: forall {r}.
VkValidationFeatureEnableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT =
        VkValidationFeatureEnableEXT 2

pattern VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT ::
        VkValidationFeatureEnableEXT

pattern $bVK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT :: VkValidationFeatureEnableEXT
$mVK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT :: forall {r}.
VkValidationFeatureEnableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT =
        VkValidationFeatureEnableEXT 3

pattern VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
        :: VkValidationFeatureEnableEXT

pattern $bVK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT :: VkValidationFeatureEnableEXT
$mVK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT :: forall {r}.
VkValidationFeatureEnableEXT -> (Void# -> r) -> (Void# -> r) -> r
VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
        = VkValidationFeatureEnableEXT 4