{-# language CPP #-}
module Vulkan.Core10.Enums.AccessFlagBits  ( AccessFlagBits( ACCESS_INDIRECT_COMMAND_READ_BIT
                                                           , ACCESS_INDEX_READ_BIT
                                                           , ACCESS_VERTEX_ATTRIBUTE_READ_BIT
                                                           , ACCESS_UNIFORM_READ_BIT
                                                           , ACCESS_INPUT_ATTACHMENT_READ_BIT
                                                           , ACCESS_SHADER_READ_BIT
                                                           , ACCESS_SHADER_WRITE_BIT
                                                           , ACCESS_COLOR_ATTACHMENT_READ_BIT
                                                           , ACCESS_COLOR_ATTACHMENT_WRITE_BIT
                                                           , ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
                                                           , ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
                                                           , ACCESS_TRANSFER_READ_BIT
                                                           , ACCESS_TRANSFER_WRITE_BIT
                                                           , ACCESS_HOST_READ_BIT
                                                           , ACCESS_HOST_WRITE_BIT
                                                           , ACCESS_MEMORY_READ_BIT
                                                           , ACCESS_MEMORY_WRITE_BIT
                                                           , ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV
                                                           , ACCESS_COMMAND_PREPROCESS_READ_BIT_NV
                                                           , ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
                                                           , ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV
                                                           , ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
                                                           , ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR
                                                           , ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
                                                           , ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT
                                                           , ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT
                                                           , ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
                                                           , ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT
                                                           , ..
                                                           )
                                           , AccessFlags
                                           ) 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)
-- | VkAccessFlagBits - Bitmask specifying memory access types that will
-- participate in a memory dependency
--
-- = Description
--
-- Certain access types are only performed by a subset of pipeline stages.
-- Any synchronization command that takes both stage masks and access masks
-- uses both to define the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>
-- - only the specified access types performed by the specified stages are
-- included in the access scope. An application /must/ not specify an
-- access flag in a synchronization command if it does not include a
-- pipeline stage in the corresponding stage mask that is able to perform
-- accesses of that type. The following table lists, for each access flag,
-- which pipeline stages /can/ perform that type of access.
--
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | Access flag                                        | Supported pipeline stages                                                                       |
-- +====================================================+=================================================================================================+
-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                    |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_INDEX_READ_BIT'                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                     |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                     |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_UNIFORM_READ_BIT'                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                  |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                  |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',          |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                   |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',     |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',  |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                 |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or              |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                   |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_SHADER_READ_BIT'                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                  |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                  |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',          |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                   |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',     |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',  |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                 |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or              |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                   |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_SHADER_WRITE_BIT'                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                  |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                  |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',          |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                   |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',     |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',  |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                 |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or              |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                   |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                  |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'          |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'          |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or         |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'              |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or         |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'              |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFER_READ_BIT'                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'                         |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFER_WRITE_BIT'                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'                         |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_HOST_READ_BIT'                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                             |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_HOST_WRITE_BIT'                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                             |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_MEMORY_READ_BIT'                           | Any                                                                                             |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_MEMORY_WRITE_BIT'                          | Any                                                                                             |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'          |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'            |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'            |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'        |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV'            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'            |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'           |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'           |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                    |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or       |
-- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'     |
-- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+
--
-- Supported access types
--
-- = See Also
--
-- 'AccessFlags'
newtype AccessFlagBits = AccessFlagBits Flags
  deriving newtype (AccessFlagBits -> AccessFlagBits -> Bool
(AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool) -> Eq AccessFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AccessFlagBits -> AccessFlagBits -> Bool
$c/= :: AccessFlagBits -> AccessFlagBits -> Bool
== :: AccessFlagBits -> AccessFlagBits -> Bool
$c== :: AccessFlagBits -> AccessFlagBits -> Bool
Eq, Eq AccessFlagBits
Eq AccessFlagBits =>
(AccessFlagBits -> AccessFlagBits -> Ordering)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> Ord AccessFlagBits
AccessFlagBits -> AccessFlagBits -> Bool
AccessFlagBits -> AccessFlagBits -> Ordering
AccessFlagBits -> AccessFlagBits -> AccessFlagBits
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 :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cmin :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
max :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cmax :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
>= :: AccessFlagBits -> AccessFlagBits -> Bool
$c>= :: AccessFlagBits -> AccessFlagBits -> Bool
> :: AccessFlagBits -> AccessFlagBits -> Bool
$c> :: AccessFlagBits -> AccessFlagBits -> Bool
<= :: AccessFlagBits -> AccessFlagBits -> Bool
$c<= :: AccessFlagBits -> AccessFlagBits -> Bool
< :: AccessFlagBits -> AccessFlagBits -> Bool
$c< :: AccessFlagBits -> AccessFlagBits -> Bool
compare :: AccessFlagBits -> AccessFlagBits -> Ordering
$ccompare :: AccessFlagBits -> AccessFlagBits -> Ordering
$cp1Ord :: Eq AccessFlagBits
Ord, Ptr b -> Int -> IO AccessFlagBits
Ptr b -> Int -> AccessFlagBits -> IO ()
Ptr AccessFlagBits -> IO AccessFlagBits
Ptr AccessFlagBits -> Int -> IO AccessFlagBits
Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ()
Ptr AccessFlagBits -> AccessFlagBits -> IO ()
AccessFlagBits -> Int
(AccessFlagBits -> Int)
-> (AccessFlagBits -> Int)
-> (Ptr AccessFlagBits -> Int -> IO AccessFlagBits)
-> (Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO AccessFlagBits)
-> (forall b. Ptr b -> Int -> AccessFlagBits -> IO ())
-> (Ptr AccessFlagBits -> IO AccessFlagBits)
-> (Ptr AccessFlagBits -> AccessFlagBits -> IO ())
-> Storable AccessFlagBits
forall b. Ptr b -> Int -> IO AccessFlagBits
forall b. Ptr b -> Int -> AccessFlagBits -> 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 AccessFlagBits -> AccessFlagBits -> IO ()
$cpoke :: Ptr AccessFlagBits -> AccessFlagBits -> IO ()
peek :: Ptr AccessFlagBits -> IO AccessFlagBits
$cpeek :: Ptr AccessFlagBits -> IO AccessFlagBits
pokeByteOff :: Ptr b -> Int -> AccessFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> AccessFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO AccessFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO AccessFlagBits
pokeElemOff :: Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ()
$cpokeElemOff :: Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ()
peekElemOff :: Ptr AccessFlagBits -> Int -> IO AccessFlagBits
$cpeekElemOff :: Ptr AccessFlagBits -> Int -> IO AccessFlagBits
alignment :: AccessFlagBits -> Int
$calignment :: AccessFlagBits -> Int
sizeOf :: AccessFlagBits -> Int
$csizeOf :: AccessFlagBits -> Int
Storable, AccessFlagBits
AccessFlagBits -> Zero AccessFlagBits
forall a. a -> Zero a
zero :: AccessFlagBits
$czero :: AccessFlagBits
Zero, Eq AccessFlagBits
AccessFlagBits
Eq AccessFlagBits =>
(AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> AccessFlagBits
-> (Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> Bool)
-> (AccessFlagBits -> Maybe Int)
-> (AccessFlagBits -> Int)
-> (AccessFlagBits -> Bool)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int)
-> Bits AccessFlagBits
Int -> AccessFlagBits
AccessFlagBits -> Bool
AccessFlagBits -> Int
AccessFlagBits -> Maybe Int
AccessFlagBits -> AccessFlagBits
AccessFlagBits -> Int -> Bool
AccessFlagBits -> Int -> AccessFlagBits
AccessFlagBits -> AccessFlagBits -> AccessFlagBits
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 :: AccessFlagBits -> Int
$cpopCount :: AccessFlagBits -> Int
rotateR :: AccessFlagBits -> Int -> AccessFlagBits
$crotateR :: AccessFlagBits -> Int -> AccessFlagBits
rotateL :: AccessFlagBits -> Int -> AccessFlagBits
$crotateL :: AccessFlagBits -> Int -> AccessFlagBits
unsafeShiftR :: AccessFlagBits -> Int -> AccessFlagBits
$cunsafeShiftR :: AccessFlagBits -> Int -> AccessFlagBits
shiftR :: AccessFlagBits -> Int -> AccessFlagBits
$cshiftR :: AccessFlagBits -> Int -> AccessFlagBits
unsafeShiftL :: AccessFlagBits -> Int -> AccessFlagBits
$cunsafeShiftL :: AccessFlagBits -> Int -> AccessFlagBits
shiftL :: AccessFlagBits -> Int -> AccessFlagBits
$cshiftL :: AccessFlagBits -> Int -> AccessFlagBits
isSigned :: AccessFlagBits -> Bool
$cisSigned :: AccessFlagBits -> Bool
bitSize :: AccessFlagBits -> Int
$cbitSize :: AccessFlagBits -> Int
bitSizeMaybe :: AccessFlagBits -> Maybe Int
$cbitSizeMaybe :: AccessFlagBits -> Maybe Int
testBit :: AccessFlagBits -> Int -> Bool
$ctestBit :: AccessFlagBits -> Int -> Bool
complementBit :: AccessFlagBits -> Int -> AccessFlagBits
$ccomplementBit :: AccessFlagBits -> Int -> AccessFlagBits
clearBit :: AccessFlagBits -> Int -> AccessFlagBits
$cclearBit :: AccessFlagBits -> Int -> AccessFlagBits
setBit :: AccessFlagBits -> Int -> AccessFlagBits
$csetBit :: AccessFlagBits -> Int -> AccessFlagBits
bit :: Int -> AccessFlagBits
$cbit :: Int -> AccessFlagBits
zeroBits :: AccessFlagBits
$czeroBits :: AccessFlagBits
rotate :: AccessFlagBits -> Int -> AccessFlagBits
$crotate :: AccessFlagBits -> Int -> AccessFlagBits
shift :: AccessFlagBits -> Int -> AccessFlagBits
$cshift :: AccessFlagBits -> Int -> AccessFlagBits
complement :: AccessFlagBits -> AccessFlagBits
$ccomplement :: AccessFlagBits -> AccessFlagBits
xor :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cxor :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
.|. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$c.|. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
.&. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$c.&. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cp1Bits :: Eq AccessFlagBits
Bits)

-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT' specifies read access to indirect
-- command data read as part of an indirect drawing or dispatch command.
pattern $bACCESS_INDIRECT_COMMAND_READ_BIT :: AccessFlagBits
$mACCESS_INDIRECT_COMMAND_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_INDIRECT_COMMAND_READ_BIT = AccessFlagBits 0x00000001
-- | 'ACCESS_INDEX_READ_BIT' specifies read access to an index buffer as part
-- of an indexed drawing command, bound by
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'.
pattern $bACCESS_INDEX_READ_BIT :: AccessFlagBits
$mACCESS_INDEX_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_INDEX_READ_BIT = AccessFlagBits 0x00000002
-- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT' specifies read access to a vertex
-- buffer as part of a drawing command, bound by
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'.
pattern $bACCESS_VERTEX_ATTRIBUTE_READ_BIT :: AccessFlagBits
$mACCESS_VERTEX_ATTRIBUTE_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_VERTEX_ATTRIBUTE_READ_BIT = AccessFlagBits 0x00000004
-- | 'ACCESS_UNIFORM_READ_BIT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>.
pattern $bACCESS_UNIFORM_READ_BIT :: AccessFlagBits
$mACCESS_UNIFORM_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_UNIFORM_READ_BIT = AccessFlagBits 0x00000008
-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT' specifies read access to an
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass input attachment>
-- within a render pass during fragment shading.
pattern $bACCESS_INPUT_ATTACHMENT_READ_BIT :: AccessFlagBits
$mACCESS_INPUT_ATTACHMENT_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000010
-- | 'ACCESS_SHADER_READ_BIT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>,
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.
pattern $bACCESS_SHADER_READ_BIT :: AccessFlagBits
$mACCESS_SHADER_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_SHADER_READ_BIT = AccessFlagBits 0x00000020
-- | 'ACCESS_SHADER_WRITE_BIT' specifies write access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.
pattern $bACCESS_SHADER_WRITE_BIT :: AccessFlagBits
$mACCESS_SHADER_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_SHADER_WRITE_BIT = AccessFlagBits 0x00000040
-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachment>,
-- such as via
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-logicop logic operations>,
-- or via certain
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.
-- It does not include
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.
pattern $bACCESS_COLOR_ATTACHMENT_READ_BIT :: AccessFlagBits
$mACCESS_COLOR_ATTACHMENT_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000080
-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT' specifies write access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment>
-- during a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass render pass>
-- or via certain
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.
pattern $bACCESS_COLOR_ATTACHMENT_WRITE_BIT :: AccessFlagBits
$mACCESS_COLOR_ATTACHMENT_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000100
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,
-- via
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
-- or via certain
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.
pattern $bACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: AccessFlagBits
$mACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000200
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,
-- via
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
-- or via certain
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.
pattern $bACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: AccessFlagBits
$mACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000400
-- | 'ACCESS_TRANSFER_READ_BIT' specifies read access to an image or buffer
-- in a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>
-- operation.
pattern $bACCESS_TRANSFER_READ_BIT :: AccessFlagBits
$mACCESS_TRANSFER_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFER_READ_BIT = AccessFlagBits 0x00000800
-- | 'ACCESS_TRANSFER_WRITE_BIT' specifies write access to an image or buffer
-- in a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear>
-- or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy>
-- operation.
pattern $bACCESS_TRANSFER_WRITE_BIT :: AccessFlagBits
$mACCESS_TRANSFER_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFER_WRITE_BIT = AccessFlagBits 0x00001000
-- | 'ACCESS_HOST_READ_BIT' specifies read access by a host operation.
-- Accesses of this type are not performed through a resource, but directly
-- on memory.
pattern $bACCESS_HOST_READ_BIT :: AccessFlagBits
$mACCESS_HOST_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_HOST_READ_BIT = AccessFlagBits 0x00002000
-- | 'ACCESS_HOST_WRITE_BIT' specifies write access by a host operation.
-- Accesses of this type are not performed through a resource, but directly
-- on memory.
pattern $bACCESS_HOST_WRITE_BIT :: AccessFlagBits
$mACCESS_HOST_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_HOST_WRITE_BIT = AccessFlagBits 0x00004000
-- | 'ACCESS_MEMORY_READ_BIT' specifies all read accesses. It is always valid
-- in any access mask, and is treated as equivalent to setting all @READ@
-- access flags that are valid where it is used.
pattern $bACCESS_MEMORY_READ_BIT :: AccessFlagBits
$mACCESS_MEMORY_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_MEMORY_READ_BIT = AccessFlagBits 0x00008000
-- | 'ACCESS_MEMORY_WRITE_BIT' specifies all write accesses. It is always
-- valid in any access mask, and is treated as equivalent to setting all
-- @WRITE@ access flags that are valid where it is used.
pattern $bACCESS_MEMORY_WRITE_BIT :: AccessFlagBits
$mACCESS_MEMORY_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_MEMORY_WRITE_BIT = AccessFlagBits 0x00010000
-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the
-- 'Vulkan.Core10.Handles.Buffer' preprocess outputs in
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.
pattern $bACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV :: AccessFlagBits
$mACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = AccessFlagBits 0x00040000
-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from
-- 'Vulkan.Core10.Handles.Buffer' inputs to
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.
pattern $bACCESS_COMMAND_PREPROCESS_READ_BIT_NV :: AccessFlagBits
$mACCESS_COMMAND_PREPROCESS_READ_BIT_NV :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = AccessFlagBits 0x00020000
-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>
-- during dynamic
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>
pattern $bACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT :: AccessFlagBits
$mACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits 0x01000000
-- | 'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV' specifies read access to a
-- shading rate image as part of a drawing command, as bound by
-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV'.
pattern $bACCESS_SHADING_RATE_IMAGE_READ_BIT_NV :: AccessFlagBits
$mACCESS_SHADING_RATE_IMAGE_READ_BIT_NV :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = AccessFlagBits 0x00800000
-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access to
-- an acceleration structure as part of a build command.
pattern $bACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: AccessFlagBits
$mACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = AccessFlagBits 0x00400000
-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to an
-- acceleration structure as part of a trace or build command.
pattern $bACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR :: AccessFlagBits
$mACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits 0x00200000
-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' is similar to
-- 'ACCESS_COLOR_ATTACHMENT_READ_BIT', but also includes
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.
pattern $bACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: AccessFlagBits
$mACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits 0x00080000
-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a
-- predicate as part of conditional rendering.
pattern $bACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT :: AccessFlagBits
$mACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits 0x00100000
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write access
-- to a transform feedback counter buffer which is written when
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'
-- executes.
pattern $bACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: AccessFlagBits
$mACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits 0x08000000
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' specifies read access
-- to a transform feedback counter buffer which is read when
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'
-- executes.
pattern $bACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: AccessFlagBits
$mACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits 0x04000000
-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' specifies write access to a
-- transform feedback buffer made when transform feedback is active.
pattern $bACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: AccessFlagBits
$mACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits 0x02000000

type AccessFlags = AccessFlagBits

instance Show AccessFlagBits where
  showsPrec :: Int -> AccessFlagBits -> ShowS
showsPrec p :: Int
p = \case
    ACCESS_INDIRECT_COMMAND_READ_BIT -> String -> ShowS
showString "ACCESS_INDIRECT_COMMAND_READ_BIT"
    ACCESS_INDEX_READ_BIT -> String -> ShowS
showString "ACCESS_INDEX_READ_BIT"
    ACCESS_VERTEX_ATTRIBUTE_READ_BIT -> String -> ShowS
showString "ACCESS_VERTEX_ATTRIBUTE_READ_BIT"
    ACCESS_UNIFORM_READ_BIT -> String -> ShowS
showString "ACCESS_UNIFORM_READ_BIT"
    ACCESS_INPUT_ATTACHMENT_READ_BIT -> String -> ShowS
showString "ACCESS_INPUT_ATTACHMENT_READ_BIT"
    ACCESS_SHADER_READ_BIT -> String -> ShowS
showString "ACCESS_SHADER_READ_BIT"
    ACCESS_SHADER_WRITE_BIT -> String -> ShowS
showString "ACCESS_SHADER_WRITE_BIT"
    ACCESS_COLOR_ATTACHMENT_READ_BIT -> String -> ShowS
showString "ACCESS_COLOR_ATTACHMENT_READ_BIT"
    ACCESS_COLOR_ATTACHMENT_WRITE_BIT -> String -> ShowS
showString "ACCESS_COLOR_ATTACHMENT_WRITE_BIT"
    ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT -> String -> ShowS
showString "ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"
    ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT -> String -> ShowS
showString "ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"
    ACCESS_TRANSFER_READ_BIT -> String -> ShowS
showString "ACCESS_TRANSFER_READ_BIT"
    ACCESS_TRANSFER_WRITE_BIT -> String -> ShowS
showString "ACCESS_TRANSFER_WRITE_BIT"
    ACCESS_HOST_READ_BIT -> String -> ShowS
showString "ACCESS_HOST_READ_BIT"
    ACCESS_HOST_WRITE_BIT -> String -> ShowS
showString "ACCESS_HOST_WRITE_BIT"
    ACCESS_MEMORY_READ_BIT -> String -> ShowS
showString "ACCESS_MEMORY_READ_BIT"
    ACCESS_MEMORY_WRITE_BIT -> String -> ShowS
showString "ACCESS_MEMORY_WRITE_BIT"
    ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV -> String -> ShowS
showString "ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"
    ACCESS_COMMAND_PREPROCESS_READ_BIT_NV -> String -> ShowS
showString "ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"
    ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT -> String -> ShowS
showString "ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"
    ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV -> String -> ShowS
showString "ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"
    ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR -> String -> ShowS
showString "ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"
    ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR -> String -> ShowS
showString "ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"
    ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT -> String -> ShowS
showString "ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"
    ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT -> String -> ShowS
showString "ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"
    ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT -> String -> ShowS
showString "ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"
    ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT -> String -> ShowS
showString "ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"
    ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT -> String -> ShowS
showString "ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"
    AccessFlagBits x :: Flags
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "AccessFlagBits 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 AccessFlagBits where
  readPrec :: ReadPrec AccessFlagBits
readPrec = ReadPrec AccessFlagBits -> ReadPrec AccessFlagBits
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec AccessFlagBits)] -> ReadPrec AccessFlagBits
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose [("ACCESS_INDIRECT_COMMAND_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_INDIRECT_COMMAND_READ_BIT)
                            , ("ACCESS_INDEX_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_INDEX_READ_BIT)
                            , ("ACCESS_VERTEX_ATTRIBUTE_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_VERTEX_ATTRIBUTE_READ_BIT)
                            , ("ACCESS_UNIFORM_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_UNIFORM_READ_BIT)
                            , ("ACCESS_INPUT_ATTACHMENT_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_INPUT_ATTACHMENT_READ_BIT)
                            , ("ACCESS_SHADER_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_SHADER_READ_BIT)
                            , ("ACCESS_SHADER_WRITE_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_SHADER_WRITE_BIT)
                            , ("ACCESS_COLOR_ATTACHMENT_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_COLOR_ATTACHMENT_READ_BIT)
                            , ("ACCESS_COLOR_ATTACHMENT_WRITE_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_COLOR_ATTACHMENT_WRITE_BIT)
                            , ("ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT)
                            , ("ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT)
                            , ("ACCESS_TRANSFER_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_TRANSFER_READ_BIT)
                            , ("ACCESS_TRANSFER_WRITE_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_TRANSFER_WRITE_BIT)
                            , ("ACCESS_HOST_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_HOST_READ_BIT)
                            , ("ACCESS_HOST_WRITE_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_HOST_WRITE_BIT)
                            , ("ACCESS_MEMORY_READ_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_MEMORY_READ_BIT)
                            , ("ACCESS_MEMORY_WRITE_BIT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_MEMORY_WRITE_BIT)
                            , ("ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV)
                            , ("ACCESS_COMMAND_PREPROCESS_READ_BIT_NV", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_COMMAND_PREPROCESS_READ_BIT_NV)
                            , ("ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT)
                            , ("ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV)
                            , ("ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR)
                            , ("ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR)
                            , ("ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT)
                            , ("ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT)
                            , ("ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT)
                            , ("ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT)
                            , ("ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT", AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure AccessFlagBits
ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT)]
                     ReadPrec AccessFlagBits
-> ReadPrec AccessFlagBits -> ReadPrec AccessFlagBits
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int -> ReadPrec AccessFlagBits -> ReadPrec AccessFlagBits
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "AccessFlagBits")
                       Flags
v <- ReadPrec Flags -> ReadPrec Flags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Flags
forall a. Read a => ReadPrec a
readPrec
                       AccessFlagBits -> ReadPrec AccessFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> AccessFlagBits
AccessFlagBits Flags
v)))