{-# language CPP #-}
module Vulkan.Core10.Enums.SubpassDescriptionFlagBits  ( SubpassDescriptionFlagBits( SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
                                                                                   , SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM
                                                                                   , SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX
                                                                                   , SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX
                                                                                   , ..
                                                                                   )
                                                       , SubpassDescriptionFlags
                                                       ) 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)
-- | VkSubpassDescriptionFlagBits - Bitmask specifying usage of a subpass
--
-- = Description
--
-- Note
--
-- Shader resolve operations allow for custom resolve operations, but
-- overdrawing pixels /may/ have a performance and\/or power cost.
-- Furthermore, since the content of any depth stencil attachment or color
-- attachment is undefined at the begining of a shader resolve subpass, any
-- depth testing, stencil testing, or blending operation which sources
-- these undefined values also has undefined result value.
--
-- = See Also
--
-- 'SubpassDescriptionFlags'
newtype SubpassDescriptionFlagBits = SubpassDescriptionFlagBits Flags
  deriving newtype (SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
(SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool)
-> (SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> Bool)
-> Eq SubpassDescriptionFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
$c/= :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
== :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
$c== :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
Eq, Eq SubpassDescriptionFlagBits
Eq SubpassDescriptionFlagBits =>
(SubpassDescriptionFlagBits
 -> SubpassDescriptionFlagBits -> Ordering)
-> (SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> Bool)
-> (SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> Bool)
-> (SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> Bool)
-> (SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> Bool)
-> (SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits)
-> Ord SubpassDescriptionFlagBits
SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> Ordering
SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
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 :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
$cmin :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
max :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
$cmax :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
>= :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
$c>= :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
> :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
$c> :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
<= :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
$c<= :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
< :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
$c< :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
compare :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> Ordering
$ccompare :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> Ordering
$cp1Ord :: Eq SubpassDescriptionFlagBits
Ord, Ptr b -> Int -> IO SubpassDescriptionFlagBits
Ptr b -> Int -> SubpassDescriptionFlagBits -> IO ()
Ptr SubpassDescriptionFlagBits -> IO SubpassDescriptionFlagBits
Ptr SubpassDescriptionFlagBits
-> Int -> IO SubpassDescriptionFlagBits
Ptr SubpassDescriptionFlagBits
-> Int -> SubpassDescriptionFlagBits -> IO ()
Ptr SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> IO ()
SubpassDescriptionFlagBits -> Int
(SubpassDescriptionFlagBits -> Int)
-> (SubpassDescriptionFlagBits -> Int)
-> (Ptr SubpassDescriptionFlagBits
    -> Int -> IO SubpassDescriptionFlagBits)
-> (Ptr SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO SubpassDescriptionFlagBits)
-> (forall b. Ptr b -> Int -> SubpassDescriptionFlagBits -> IO ())
-> (Ptr SubpassDescriptionFlagBits
    -> IO SubpassDescriptionFlagBits)
-> (Ptr SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> IO ())
-> Storable SubpassDescriptionFlagBits
forall b. Ptr b -> Int -> IO SubpassDescriptionFlagBits
forall b. Ptr b -> Int -> SubpassDescriptionFlagBits -> 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 SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> IO ()
$cpoke :: Ptr SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> IO ()
peek :: Ptr SubpassDescriptionFlagBits -> IO SubpassDescriptionFlagBits
$cpeek :: Ptr SubpassDescriptionFlagBits -> IO SubpassDescriptionFlagBits
pokeByteOff :: Ptr b -> Int -> SubpassDescriptionFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> SubpassDescriptionFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO SubpassDescriptionFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SubpassDescriptionFlagBits
pokeElemOff :: Ptr SubpassDescriptionFlagBits
-> Int -> SubpassDescriptionFlagBits -> IO ()
$cpokeElemOff :: Ptr SubpassDescriptionFlagBits
-> Int -> SubpassDescriptionFlagBits -> IO ()
peekElemOff :: Ptr SubpassDescriptionFlagBits
-> Int -> IO SubpassDescriptionFlagBits
$cpeekElemOff :: Ptr SubpassDescriptionFlagBits
-> Int -> IO SubpassDescriptionFlagBits
alignment :: SubpassDescriptionFlagBits -> Int
$calignment :: SubpassDescriptionFlagBits -> Int
sizeOf :: SubpassDescriptionFlagBits -> Int
$csizeOf :: SubpassDescriptionFlagBits -> Int
Storable, SubpassDescriptionFlagBits
SubpassDescriptionFlagBits -> Zero SubpassDescriptionFlagBits
forall a. a -> Zero a
zero :: SubpassDescriptionFlagBits
$czero :: SubpassDescriptionFlagBits
Zero, Eq SubpassDescriptionFlagBits
SubpassDescriptionFlagBits
Eq SubpassDescriptionFlagBits =>
(SubpassDescriptionFlagBits
 -> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> SubpassDescriptionFlagBits
-> (Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits -> Int -> Bool)
-> (SubpassDescriptionFlagBits -> Maybe Int)
-> (SubpassDescriptionFlagBits -> Int)
-> (SubpassDescriptionFlagBits -> Bool)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits
    -> Int -> SubpassDescriptionFlagBits)
-> (SubpassDescriptionFlagBits -> Int)
-> Bits SubpassDescriptionFlagBits
Int -> SubpassDescriptionFlagBits
SubpassDescriptionFlagBits -> Bool
SubpassDescriptionFlagBits -> Int
SubpassDescriptionFlagBits -> Maybe Int
SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
SubpassDescriptionFlagBits -> Int -> Bool
SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
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 :: SubpassDescriptionFlagBits -> Int
$cpopCount :: SubpassDescriptionFlagBits -> Int
rotateR :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$crotateR :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
rotateL :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$crotateL :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
unsafeShiftR :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$cunsafeShiftR :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
shiftR :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$cshiftR :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
unsafeShiftL :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$cunsafeShiftL :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
shiftL :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$cshiftL :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
isSigned :: SubpassDescriptionFlagBits -> Bool
$cisSigned :: SubpassDescriptionFlagBits -> Bool
bitSize :: SubpassDescriptionFlagBits -> Int
$cbitSize :: SubpassDescriptionFlagBits -> Int
bitSizeMaybe :: SubpassDescriptionFlagBits -> Maybe Int
$cbitSizeMaybe :: SubpassDescriptionFlagBits -> Maybe Int
testBit :: SubpassDescriptionFlagBits -> Int -> Bool
$ctestBit :: SubpassDescriptionFlagBits -> Int -> Bool
complementBit :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$ccomplementBit :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
clearBit :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$cclearBit :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
setBit :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$csetBit :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
bit :: Int -> SubpassDescriptionFlagBits
$cbit :: Int -> SubpassDescriptionFlagBits
zeroBits :: SubpassDescriptionFlagBits
$czeroBits :: SubpassDescriptionFlagBits
rotate :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$crotate :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
shift :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
$cshift :: SubpassDescriptionFlagBits -> Int -> SubpassDescriptionFlagBits
complement :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
$ccomplement :: SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
xor :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
$cxor :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
.|. :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
$c.|. :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
.&. :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
$c.&. :: SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits
$cp1Bits :: Eq SubpassDescriptionFlagBits
Bits)

-- | 'SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM' specifies that the subpass
-- performs shader resolve operations.
pattern $bSUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM :: SubpassDescriptionFlagBits
$mSUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM :: forall r.
SubpassDescriptionFlagBits -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = SubpassDescriptionFlagBits 0x00000008
-- | 'SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM' specifies that the
-- framebuffer region is the fragment region, that is, the minimum region
-- dependencies are by pixel rather than by sample, such that any fragment
-- shader invocation /can/ access any sample associated with that fragment
-- shader invocation.
pattern $bSUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM :: SubpassDescriptionFlagBits
$mSUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM :: forall r.
SubpassDescriptionFlagBits -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = SubpassDescriptionFlagBits 0x00000004
-- | 'SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX' specifies that
-- shaders compiled for this subpass use per-view positions which only
-- differ in value in the x component. Per-view viewport mask /can/ also be
-- used.
pattern $bSUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX :: SubpassDescriptionFlagBits
$mSUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX :: forall r.
SubpassDescriptionFlagBits -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = SubpassDescriptionFlagBits 0x00000002
-- | 'SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX' specifies that shaders
-- compiled for this subpass write the attributes for all views in a single
-- invocation of each vertex processing stage. All pipelines compiled
-- against a subpass that includes this bit /must/ write per-view
-- attributes to the @*PerViewNV[]@ shader outputs, in addition to the
-- non-per-view (e.g. @Position@) outputs.
pattern $bSUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX :: SubpassDescriptionFlagBits
$mSUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX :: forall r.
SubpassDescriptionFlagBits -> (Void# -> r) -> (Void# -> r) -> r
SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = SubpassDescriptionFlagBits 0x00000001

type SubpassDescriptionFlags = SubpassDescriptionFlagBits

instance Show SubpassDescriptionFlagBits where
  showsPrec :: Int -> SubpassDescriptionFlagBits -> ShowS
showsPrec p :: Int
p = \case
    SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM -> String -> ShowS
showString "SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"
    SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM -> String -> ShowS
showString "SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"
    SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX -> String -> ShowS
showString "SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"
    SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX -> String -> ShowS
showString "SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"
    SubpassDescriptionFlagBits x :: Flags
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "SubpassDescriptionFlagBits 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 SubpassDescriptionFlagBits where
  readPrec :: ReadPrec SubpassDescriptionFlagBits
readPrec = ReadPrec SubpassDescriptionFlagBits
-> ReadPrec SubpassDescriptionFlagBits
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec SubpassDescriptionFlagBits)]
-> ReadPrec SubpassDescriptionFlagBits
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose [("SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM", SubpassDescriptionFlagBits -> ReadPrec SubpassDescriptionFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM)
                            , ("SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM", SubpassDescriptionFlagBits -> ReadPrec SubpassDescriptionFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM)
                            , ("SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX", SubpassDescriptionFlagBits -> ReadPrec SubpassDescriptionFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX)
                            , ("SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX", SubpassDescriptionFlagBits -> ReadPrec SubpassDescriptionFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX)]
                     ReadPrec SubpassDescriptionFlagBits
-> ReadPrec SubpassDescriptionFlagBits
-> ReadPrec SubpassDescriptionFlagBits
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec SubpassDescriptionFlagBits
-> ReadPrec SubpassDescriptionFlagBits
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "SubpassDescriptionFlagBits")
                       Flags
v <- ReadPrec Flags -> ReadPrec Flags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Flags
forall a. Read a => ReadPrec a
readPrec
                       SubpassDescriptionFlagBits -> ReadPrec SubpassDescriptionFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> SubpassDescriptionFlagBits
SubpassDescriptionFlagBits Flags
v)))