{-# language CPP #-}
-- No documentation found for Chapter "SubpassDescriptionFlagBits"
module Vulkan.Core10.Enums.SubpassDescriptionFlagBits  ( SubpassDescriptionFlags
                                                       , SubpassDescriptionFlagBits( SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT
                                                                                   , SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
                                                                                   , SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
                                                                                   , SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT
                                                                                   , 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
                                                                                   , ..
                                                                                   )
                                                       ) where

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

-- | 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 beginning 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
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'SubpassDescriptionFlags'
newtype SubpassDescriptionFlagBits = SubpassDescriptionFlagBits Flags
  deriving newtype (SubpassDescriptionFlagBits -> SubpassDescriptionFlagBits -> Bool
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
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
Ord, Ptr SubpassDescriptionFlagBits -> IO SubpassDescriptionFlagBits
Ptr SubpassDescriptionFlagBits
-> Int -> IO SubpassDescriptionFlagBits
Ptr SubpassDescriptionFlagBits
-> Int -> SubpassDescriptionFlagBits -> IO ()
Ptr SubpassDescriptionFlagBits
-> SubpassDescriptionFlagBits -> IO ()
SubpassDescriptionFlagBits -> Int
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 :: forall b. Ptr b -> Int -> SubpassDescriptionFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> SubpassDescriptionFlagBits -> IO ()
peekByteOff :: forall b. 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
forall a. a -> Zero a
zero :: SubpassDescriptionFlagBits
$czero :: SubpassDescriptionFlagBits
Zero, Eq SubpassDescriptionFlagBits
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
Bits, Bits SubpassDescriptionFlagBits
SubpassDescriptionFlagBits -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: SubpassDescriptionFlagBits -> Int
$ccountTrailingZeros :: SubpassDescriptionFlagBits -> Int
countLeadingZeros :: SubpassDescriptionFlagBits -> Int
$ccountLeadingZeros :: SubpassDescriptionFlagBits -> Int
finiteBitSize :: SubpassDescriptionFlagBits -> Int
$cfiniteBitSize :: SubpassDescriptionFlagBits -> Int
FiniteBits)

-- | 'SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT' specifies that
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-legacy-dithering Legacy Dithering>
-- is enabled for this subpass.
pattern $bSUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT :: SubpassDescriptionFlagBits
$mSUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT :: forall {r}.
SubpassDescriptionFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = SubpassDescriptionFlagBits 0x00000080

-- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'
-- specifies that this subpass supports pipelines created with
-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'.
pattern $bSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT :: SubpassDescriptionFlagBits
$mSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT :: forall {r}.
SubpassDescriptionFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = SubpassDescriptionFlagBits 0x00000040

-- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'
-- specifies that this subpass supports pipelines created with
-- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'.
pattern $bSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT :: SubpassDescriptionFlagBits
$mSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT :: forall {r}.
SubpassDescriptionFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = SubpassDescriptionFlagBits 0x00000020

-- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT'
-- specifies that this subpass supports pipelines created with
-- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'.
pattern $bSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT :: SubpassDescriptionFlagBits
$mSUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT :: forall {r}.
SubpassDescriptionFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = SubpassDescriptionFlagBits 0x00000010

-- | '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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader 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 -> ((# #) -> r) -> ((# #) -> r) -> r
SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = SubpassDescriptionFlagBits 0x00000001

conNameSubpassDescriptionFlagBits :: String
conNameSubpassDescriptionFlagBits :: String
conNameSubpassDescriptionFlagBits = String
"SubpassDescriptionFlagBits"

enumPrefixSubpassDescriptionFlagBits :: String
enumPrefixSubpassDescriptionFlagBits :: String
enumPrefixSubpassDescriptionFlagBits = String
"SUBPASS_DESCRIPTION_"

showTableSubpassDescriptionFlagBits :: [(SubpassDescriptionFlagBits, String)]
showTableSubpassDescriptionFlagBits :: [(SubpassDescriptionFlagBits, String)]
showTableSubpassDescriptionFlagBits =
  [
    ( SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT
    , String
"ENABLE_LEGACY_DITHERING_BIT_EXT"
    )
  ,
    ( SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
    , String
"RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"
    )
  ,
    ( SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
    , String
"RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"
    )
  ,
    ( SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT
    , String
"RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT"
    )
  ,
    ( SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM
    , String
"SHADER_RESOLVE_BIT_QCOM"
    )
  ,
    ( SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM
    , String
"FRAGMENT_REGION_BIT_QCOM"
    )
  ,
    ( SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX
    , String
"PER_VIEW_POSITION_X_ONLY_BIT_NVX"
    )
  ,
    ( SubpassDescriptionFlagBits
SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX
    , String
"PER_VIEW_ATTRIBUTES_BIT_NVX"
    )
  ]

instance Show SubpassDescriptionFlagBits where
  showsPrec :: Int -> SubpassDescriptionFlagBits -> ShowS
showsPrec =
    forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixSubpassDescriptionFlagBits
      [(SubpassDescriptionFlagBits, String)]
showTableSubpassDescriptionFlagBits
      String
conNameSubpassDescriptionFlagBits
      (\(SubpassDescriptionFlagBits Flags
x) -> Flags
x)
      (\Flags
x -> String -> ShowS
showString String
"0x" forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

instance Read SubpassDescriptionFlagBits where
  readPrec :: ReadPrec SubpassDescriptionFlagBits
readPrec =
    forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixSubpassDescriptionFlagBits
      [(SubpassDescriptionFlagBits, String)]
showTableSubpassDescriptionFlagBits
      String
conNameSubpassDescriptionFlagBits
      Flags -> SubpassDescriptionFlagBits
SubpassDescriptionFlagBits