{-# language CPP #-}
module Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits  ( PipelineShaderStageCreateFlagBits( PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
                                                                                                 , PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
                                                                                                 , ..
                                                                                                 )
                                                              , PipelineShaderStageCreateFlags
                                                              ) where

import GHC.Read (choose)
import GHC.Read (expectP)
import GHC.Read (parens)
import GHC.Show (showParen)
import GHC.Show (showString)
import Numeric (showHex)
import Text.ParserCombinators.ReadPrec ((+++))
import Text.ParserCombinators.ReadPrec (prec)
import Text.ParserCombinators.ReadPrec (step)
import Data.Bits (Bits)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import Text.Read.Lex (Lexeme(Ident))
import Vulkan.Core10.FundamentalTypes (Flags)
import Vulkan.Zero (Zero)
-- | VkPipelineShaderStageCreateFlagBits - Bitmask controlling how a pipeline
-- shader stage is created
--
-- = Description
--
-- Note
--
-- If 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'
-- and 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' are
-- specified and
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-max-subgroup-size minSubgroupSize>
-- does not equal
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-max-subgroup-size maxSubgroupSize>
-- and no
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipelines-required-subgroup-size required subgroup size>
-- is specified, then the only way to guarantee that the \'X\' dimension of
-- the local workgroup size is a multiple of
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>
-- is to make it a multiple of @maxSubgroupSize@. Under these conditions,
-- you are guaranteed full subgroups but not any particular subgroup size.
--
-- = See Also
--
-- 'PipelineShaderStageCreateFlags'
newtype PipelineShaderStageCreateFlagBits = PipelineShaderStageCreateFlagBits Flags
  deriving newtype (PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
(PipelineShaderStageCreateFlagBits
 -> PipelineShaderStageCreateFlagBits -> Bool)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits -> Bool)
-> Eq PipelineShaderStageCreateFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
$c/= :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
== :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
$c== :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
Eq, Eq PipelineShaderStageCreateFlagBits
Eq PipelineShaderStageCreateFlagBits =>
(PipelineShaderStageCreateFlagBits
 -> PipelineShaderStageCreateFlagBits -> Ordering)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits -> Bool)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits -> Bool)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits -> Bool)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits -> Bool)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits)
-> Ord PipelineShaderStageCreateFlagBits
PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Ordering
PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
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 :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
$cmin :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
max :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
$cmax :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
>= :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
$c>= :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
> :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
$c> :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
<= :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
$c<= :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
< :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
$c< :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Bool
compare :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Ordering
$ccompare :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> Ordering
$cp1Ord :: Eq PipelineShaderStageCreateFlagBits
Ord, Ptr b -> Int -> IO PipelineShaderStageCreateFlagBits
Ptr b -> Int -> PipelineShaderStageCreateFlagBits -> IO ()
Ptr PipelineShaderStageCreateFlagBits
-> IO PipelineShaderStageCreateFlagBits
Ptr PipelineShaderStageCreateFlagBits
-> Int -> IO PipelineShaderStageCreateFlagBits
Ptr PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits -> IO ()
Ptr PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> IO ()
PipelineShaderStageCreateFlagBits -> Int
(PipelineShaderStageCreateFlagBits -> Int)
-> (PipelineShaderStageCreateFlagBits -> Int)
-> (Ptr PipelineShaderStageCreateFlagBits
    -> Int -> IO PipelineShaderStageCreateFlagBits)
-> (Ptr PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO PipelineShaderStageCreateFlagBits)
-> (forall b.
    Ptr b -> Int -> PipelineShaderStageCreateFlagBits -> IO ())
-> (Ptr PipelineShaderStageCreateFlagBits
    -> IO PipelineShaderStageCreateFlagBits)
-> (Ptr PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits -> IO ())
-> Storable PipelineShaderStageCreateFlagBits
forall b. Ptr b -> Int -> IO PipelineShaderStageCreateFlagBits
forall b.
Ptr b -> Int -> PipelineShaderStageCreateFlagBits -> 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 PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> IO ()
$cpoke :: Ptr PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits -> IO ()
peek :: Ptr PipelineShaderStageCreateFlagBits
-> IO PipelineShaderStageCreateFlagBits
$cpeek :: Ptr PipelineShaderStageCreateFlagBits
-> IO PipelineShaderStageCreateFlagBits
pokeByteOff :: Ptr b -> Int -> PipelineShaderStageCreateFlagBits -> IO ()
$cpokeByteOff :: forall b.
Ptr b -> Int -> PipelineShaderStageCreateFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO PipelineShaderStageCreateFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PipelineShaderStageCreateFlagBits
pokeElemOff :: Ptr PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits -> IO ()
$cpokeElemOff :: Ptr PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits -> IO ()
peekElemOff :: Ptr PipelineShaderStageCreateFlagBits
-> Int -> IO PipelineShaderStageCreateFlagBits
$cpeekElemOff :: Ptr PipelineShaderStageCreateFlagBits
-> Int -> IO PipelineShaderStageCreateFlagBits
alignment :: PipelineShaderStageCreateFlagBits -> Int
$calignment :: PipelineShaderStageCreateFlagBits -> Int
sizeOf :: PipelineShaderStageCreateFlagBits -> Int
$csizeOf :: PipelineShaderStageCreateFlagBits -> Int
Storable, PipelineShaderStageCreateFlagBits
PipelineShaderStageCreateFlagBits
-> Zero PipelineShaderStageCreateFlagBits
forall a. a -> Zero a
zero :: PipelineShaderStageCreateFlagBits
$czero :: PipelineShaderStageCreateFlagBits
Zero, Eq PipelineShaderStageCreateFlagBits
PipelineShaderStageCreateFlagBits
Eq PipelineShaderStageCreateFlagBits =>
(PipelineShaderStageCreateFlagBits
 -> PipelineShaderStageCreateFlagBits
 -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> PipelineShaderStageCreateFlagBits
-> (Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits -> Int -> Bool)
-> (PipelineShaderStageCreateFlagBits -> Maybe Int)
-> (PipelineShaderStageCreateFlagBits -> Int)
-> (PipelineShaderStageCreateFlagBits -> Bool)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits
    -> Int -> PipelineShaderStageCreateFlagBits)
-> (PipelineShaderStageCreateFlagBits -> Int)
-> Bits PipelineShaderStageCreateFlagBits
Int -> PipelineShaderStageCreateFlagBits
PipelineShaderStageCreateFlagBits -> Bool
PipelineShaderStageCreateFlagBits -> Int
PipelineShaderStageCreateFlagBits -> Maybe Int
PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
PipelineShaderStageCreateFlagBits -> Int -> Bool
PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: PipelineShaderStageCreateFlagBits -> Int
$cpopCount :: PipelineShaderStageCreateFlagBits -> Int
rotateR :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$crotateR :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
rotateL :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$crotateL :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
unsafeShiftR :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$cunsafeShiftR :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
shiftR :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$cshiftR :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
unsafeShiftL :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$cunsafeShiftL :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
shiftL :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$cshiftL :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
isSigned :: PipelineShaderStageCreateFlagBits -> Bool
$cisSigned :: PipelineShaderStageCreateFlagBits -> Bool
bitSize :: PipelineShaderStageCreateFlagBits -> Int
$cbitSize :: PipelineShaderStageCreateFlagBits -> Int
bitSizeMaybe :: PipelineShaderStageCreateFlagBits -> Maybe Int
$cbitSizeMaybe :: PipelineShaderStageCreateFlagBits -> Maybe Int
testBit :: PipelineShaderStageCreateFlagBits -> Int -> Bool
$ctestBit :: PipelineShaderStageCreateFlagBits -> Int -> Bool
complementBit :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$ccomplementBit :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
clearBit :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$cclearBit :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
setBit :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$csetBit :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
bit :: Int -> PipelineShaderStageCreateFlagBits
$cbit :: Int -> PipelineShaderStageCreateFlagBits
zeroBits :: PipelineShaderStageCreateFlagBits
$czeroBits :: PipelineShaderStageCreateFlagBits
rotate :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$crotate :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
shift :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
$cshift :: PipelineShaderStageCreateFlagBits
-> Int -> PipelineShaderStageCreateFlagBits
complement :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
$ccomplement :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
xor :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
$cxor :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
.|. :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
$c.|. :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
.&. :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
$c.&. :: PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
-> PipelineShaderStageCreateFlagBits
$cp1Bits :: Eq PipelineShaderStageCreateFlagBits
Bits)

-- | 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' specifies
-- that the subgroup sizes /must/ be launched with all invocations active
-- in the compute stage.
pattern $bPIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT :: PipelineShaderStageCreateFlagBits
$mPIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT :: forall r.
PipelineShaderStageCreateFlagBits
-> (Void# -> r) -> (Void# -> r) -> r
PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = PipelineShaderStageCreateFlagBits 0x00000002
-- | 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT'
-- specifies that the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>
-- /may/ vary in the shader stage.
pattern $bPIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT :: PipelineShaderStageCreateFlagBits
$mPIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT :: forall r.
PipelineShaderStageCreateFlagBits
-> (Void# -> r) -> (Void# -> r) -> r
PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = PipelineShaderStageCreateFlagBits 0x00000001

type PipelineShaderStageCreateFlags = PipelineShaderStageCreateFlagBits

instance Show PipelineShaderStageCreateFlagBits where
  showsPrec :: Int -> PipelineShaderStageCreateFlagBits -> ShowS
showsPrec p :: Int
p = \case
    PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT -> String -> ShowS
showString "PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"
    PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT -> String -> ShowS
showString "PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"
    PipelineShaderStageCreateFlagBits x :: Flags
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "PipelineShaderStageCreateFlagBits 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

instance Read PipelineShaderStageCreateFlagBits where
  readPrec :: ReadPrec PipelineShaderStageCreateFlagBits
readPrec = ReadPrec PipelineShaderStageCreateFlagBits
-> ReadPrec PipelineShaderStageCreateFlagBits
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec PipelineShaderStageCreateFlagBits)]
-> ReadPrec PipelineShaderStageCreateFlagBits
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose [("PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT", PipelineShaderStageCreateFlagBits
-> ReadPrec PipelineShaderStageCreateFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure PipelineShaderStageCreateFlagBits
PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT)
                            , ("PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT", PipelineShaderStageCreateFlagBits
-> ReadPrec PipelineShaderStageCreateFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure PipelineShaderStageCreateFlagBits
PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT)]
                     ReadPrec PipelineShaderStageCreateFlagBits
-> ReadPrec PipelineShaderStageCreateFlagBits
-> ReadPrec PipelineShaderStageCreateFlagBits
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec PipelineShaderStageCreateFlagBits
-> ReadPrec PipelineShaderStageCreateFlagBits
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "PipelineShaderStageCreateFlagBits")
                       Flags
v <- ReadPrec Flags -> ReadPrec Flags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Flags
forall a. Read a => ReadPrec a
readPrec
                       PipelineShaderStageCreateFlagBits
-> ReadPrec PipelineShaderStageCreateFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> PipelineShaderStageCreateFlagBits
PipelineShaderStageCreateFlagBits Flags
v)))