{-# language CPP #-}
-- No documentation found for Chapter "PipelineShaderStageCreateFlagBits"
module Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits  ( PipelineShaderStageCreateFlags
                                                              , PipelineShaderStageCreateFlagBits( PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
                                                                                                 , PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
                                                                                                 , ..
                                                                                                 )
                                                              ) where

import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showString)
import Numeric (showHex)
import Vulkan.Zero (Zero)
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Vulkan.Core10.FundamentalTypes (Flags)
type PipelineShaderStageCreateFlags = PipelineShaderStageCreateFlagBits

-- | 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, Bits PipelineShaderStageCreateFlagBits
Bits PipelineShaderStageCreateFlagBits =>
(PipelineShaderStageCreateFlagBits -> Int)
-> (PipelineShaderStageCreateFlagBits -> Int)
-> (PipelineShaderStageCreateFlagBits -> Int)
-> FiniteBits PipelineShaderStageCreateFlagBits
PipelineShaderStageCreateFlagBits -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: PipelineShaderStageCreateFlagBits -> Int
$ccountTrailingZeros :: PipelineShaderStageCreateFlagBits -> Int
countLeadingZeros :: PipelineShaderStageCreateFlagBits -> Int
$ccountLeadingZeros :: PipelineShaderStageCreateFlagBits -> Int
finiteBitSize :: PipelineShaderStageCreateFlagBits -> Int
$cfiniteBitSize :: PipelineShaderStageCreateFlagBits -> Int
$cp1FiniteBits :: Bits PipelineShaderStageCreateFlagBits
FiniteBits)

-- | '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

conNamePipelineShaderStageCreateFlagBits :: String
conNamePipelineShaderStageCreateFlagBits :: String
conNamePipelineShaderStageCreateFlagBits = "PipelineShaderStageCreateFlagBits"

enumPrefixPipelineShaderStageCreateFlagBits :: String
enumPrefixPipelineShaderStageCreateFlagBits :: String
enumPrefixPipelineShaderStageCreateFlagBits = "PIPELINE_SHADER_STAGE_CREATE_"

showTablePipelineShaderStageCreateFlagBits :: [(PipelineShaderStageCreateFlagBits, String)]
showTablePipelineShaderStageCreateFlagBits :: [(PipelineShaderStageCreateFlagBits, String)]
showTablePipelineShaderStageCreateFlagBits =
  [ (PipelineShaderStageCreateFlagBits
PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT     , "REQUIRE_FULL_SUBGROUPS_BIT_EXT")
  , (PipelineShaderStageCreateFlagBits
PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, "ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT")
  ]

instance Show PipelineShaderStageCreateFlagBits where
  showsPrec :: Int -> PipelineShaderStageCreateFlagBits -> ShowS
showsPrec = String
-> [(PipelineShaderStageCreateFlagBits, String)]
-> String
-> (PipelineShaderStageCreateFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> PipelineShaderStageCreateFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixPipelineShaderStageCreateFlagBits
                            [(PipelineShaderStageCreateFlagBits, String)]
showTablePipelineShaderStageCreateFlagBits
                            String
conNamePipelineShaderStageCreateFlagBits
                            (\(PipelineShaderStageCreateFlagBits x :: Flags
x) -> Flags
x)
                            (\x :: Flags
x -> String -> ShowS
showString "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 = String
-> [(PipelineShaderStageCreateFlagBits, String)]
-> String
-> (Flags -> PipelineShaderStageCreateFlagBits)
-> ReadPrec PipelineShaderStageCreateFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixPipelineShaderStageCreateFlagBits
                          [(PipelineShaderStageCreateFlagBits, String)]
showTablePipelineShaderStageCreateFlagBits
                          String
conNamePipelineShaderStageCreateFlagBits
                          Flags -> PipelineShaderStageCreateFlagBits
PipelineShaderStageCreateFlagBits