{-# language CPP #-}
-- No documentation found for Chapter "BufferUsageFlagBits"
module Vulkan.Core10.Enums.BufferUsageFlagBits  ( BufferUsageFlags
                                                , BufferUsageFlagBits( BUFFER_USAGE_TRANSFER_SRC_BIT
                                                                     , BUFFER_USAGE_TRANSFER_DST_BIT
                                                                     , BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
                                                                     , BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
                                                                     , BUFFER_USAGE_UNIFORM_BUFFER_BIT
                                                                     , BUFFER_USAGE_STORAGE_BUFFER_BIT
                                                                     , BUFFER_USAGE_INDEX_BUFFER_BIT
                                                                     , BUFFER_USAGE_VERTEX_BUFFER_BIT
                                                                     , BUFFER_USAGE_INDIRECT_BUFFER_BIT
                                                                     , BUFFER_USAGE_TILE_MEMORY_BIT_QCOM
                                                                     , BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT
                                                                     , BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT
                                                                     , BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
                                                                     , BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
                                                                     , BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
                                                                     , BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR
                                                                     , BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
                                                                     , BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
                                                                     , BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT
                                                                     , BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
                                                                     , BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
                                                                     , BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
                                                                     , BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
                                                                     , BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
                                                                     , ..
                                                                     )
                                                ) 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 BufferUsageFlags = BufferUsageFlagBits

-- | VkBufferUsageFlagBits - Bitmask specifying allowed usage of a buffer
--
-- = Description
--
-- -   'BUFFER_USAGE_TRANSFER_SRC_BIT' specifies that the buffer /can/ be
--     used as the source of a /transfer command/ (see the definition of
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-pipeline-stages-transfer >).
--
-- -   'BUFFER_USAGE_TRANSFER_DST_BIT' specifies that the buffer /can/ be
--     used as the destination of a transfer command.
--
-- -   'BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT' specifies that the buffer
--     /can/ be used to create a 'Vulkan.Core10.Handles.BufferView'
--     suitable for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot
--     of type
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'.
--
-- -   'BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT' specifies that the buffer
--     /can/ be used to create a 'Vulkan.Core10.Handles.BufferView'
--     suitable for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot
--     of type
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'.
--
-- -   'BUFFER_USAGE_UNIFORM_BUFFER_BIT' specifies that the buffer /can/ be
--     used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo'
--     suitable for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot
--     either of type
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'
--     or
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'.
--
-- -   'BUFFER_USAGE_STORAGE_BUFFER_BIT' specifies that the buffer /can/ be
--     used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo'
--     suitable for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot
--     either of type
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
--     or
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'.
--
-- -   'BUFFER_USAGE_INDEX_BUFFER_BIT' specifies that the buffer is
--     suitable for passing as the @buffer@ parameter to
--     'Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap.cmdBindIndexBuffer2'
--     and 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'.
--
-- -   'BUFFER_USAGE_VERTEX_BUFFER_BIT' specifies that the buffer is
--     suitable for passing as an element of the @pBuffers@ array to
--     'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'.
--
-- -   'BUFFER_USAGE_INDIRECT_BUFFER_BIT' specifies that the buffer is
--     suitable for passing as the @buffer@ parameter to
--     'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect',
--     'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect',
--     'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV',
--     'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV',
--     'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT',
--     'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT',
--     'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI',
--     or 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect'. It is
--     also suitable for passing as the @buffer@ member of
--     'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV',
--     or @sequencesCountBuffer@ or @sequencesIndexBuffer@ or
--     @preprocessedBuffer@ member of
--     'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV'.
--     It is also suitable for passing as the underlying buffer of either
--     the @preprocessAddress@ or @sequenceCountAddress@ members of
--     'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsInfoEXT'.
--
-- -   'BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT' specifies that the
--     buffer is suitable for passing as the @buffer@ parameter to
--     'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdBeginConditionalRenderingEXT'.
--
-- -   'BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT' specifies that the
--     buffer is suitable for using for binding as a transform feedback
--     buffer with
--     'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT'.
--
-- -   'BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT' specifies
--     that the buffer is suitable for using as a counter buffer with
--     'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'
--     and
--     'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'.
--
-- -   'BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT' specifies that the
--     buffer is suitable to contain sampler and combined image sampler
--     descriptors when bound as a descriptor buffer. Buffers containing
--     combined image sampler descriptors /must/ also specify
--     'BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'.
--
-- -   'BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT' specifies that the
--     buffer is suitable to contain resource descriptors when bound as a
--     descriptor buffer.
--
-- -   'BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT' specifies
--     that the buffer, when bound, /can/ be used by the implementation to
--     support push descriptors when using descriptor buffers.
--
-- -   'BUFFER_USAGE_TILE_MEMORY_BIT_QCOM' specifies that the buffer /can/
--     be bound to 'Vulkan.Core10.Handles.DeviceMemory' allocated from a
--     'Vulkan.Core10.DeviceInitialization.MemoryHeap' with the
--     'Vulkan.Core10.Enums.MemoryHeapFlagBits.MEMORY_HEAP_TILE_MEMORY_BIT_QCOM'
--     property.
--
-- -   'Vulkan.Extensions.VK_NV_ray_tracing.BUFFER_USAGE_RAY_TRACING_BIT_NV'
--     specifies that the buffer is suitable for use in
--     'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV'.
--
-- -   'BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR' specifies that the
--     buffer is suitable for use as a
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#shader-binding-table Shader Binding Table>.
--
-- -   'BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR'
--     specifies that the buffer is suitable for use as a read-only input
--     to an
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#acceleration-structure-building acceleration structure build>.
--
-- -   'BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' specifies that
--     the buffer is suitable for storage space for a
--     'Vulkan.Extensions.Handles.AccelerationStructureKHR'.
--
-- -   'BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT' specifies that the buffer
--     /can/ be used to retrieve a buffer device address via
--     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress'
--     and use that address to access the buffer’s memory from a shader.
--
-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferUsageFlagBits VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR>
--     specifies that the buffer /can/ be used as the source video
--     bitstream buffer in a
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-decode-operations video decode operation>.
--
-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferUsageFlagBits VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR>
--     is reserved for future use.
--
-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferUsageFlagBits VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR>
--     specifies that the buffer /can/ be used as the destination video
--     bitstream buffer in a
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-encode-operations video encode operation>.
--
-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferUsageFlagBits VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR>
--     is reserved for future use.
--
-- -   'BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' specifies that the
--     buffer /can/ be used for as scratch memory for
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#executiongraphs execution graph dispatch>.
--
-- -   'BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT' specifies that the buffer
--     /can/ be used as a
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#descriptorheaps descriptor heap>.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'BufferUsageFlags'
newtype BufferUsageFlagBits = BufferUsageFlagBits Flags
  deriving newtype (BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
(BufferUsageFlagBits -> BufferUsageFlagBits -> Bool)
-> (BufferUsageFlagBits -> BufferUsageFlagBits -> Bool)
-> Eq BufferUsageFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
== :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
$c/= :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
/= :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
Eq, Eq BufferUsageFlagBits
Eq BufferUsageFlagBits =>
(BufferUsageFlagBits -> BufferUsageFlagBits -> Ordering)
-> (BufferUsageFlagBits -> BufferUsageFlagBits -> Bool)
-> (BufferUsageFlagBits -> BufferUsageFlagBits -> Bool)
-> (BufferUsageFlagBits -> BufferUsageFlagBits -> Bool)
-> (BufferUsageFlagBits -> BufferUsageFlagBits -> Bool)
-> (BufferUsageFlagBits
    -> BufferUsageFlagBits -> BufferUsageFlagBits)
-> (BufferUsageFlagBits
    -> BufferUsageFlagBits -> BufferUsageFlagBits)
-> Ord BufferUsageFlagBits
BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
BufferUsageFlagBits -> BufferUsageFlagBits -> Ordering
BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
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
$ccompare :: BufferUsageFlagBits -> BufferUsageFlagBits -> Ordering
compare :: BufferUsageFlagBits -> BufferUsageFlagBits -> Ordering
$c< :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
< :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
$c<= :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
<= :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
$c> :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
> :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
$c>= :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
>= :: BufferUsageFlagBits -> BufferUsageFlagBits -> Bool
$cmax :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
max :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
$cmin :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
min :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
Ord, Ptr BufferUsageFlagBits -> IO BufferUsageFlagBits
Ptr BufferUsageFlagBits -> Int -> IO BufferUsageFlagBits
Ptr BufferUsageFlagBits -> Int -> BufferUsageFlagBits -> IO ()
Ptr BufferUsageFlagBits -> BufferUsageFlagBits -> IO ()
BufferUsageFlagBits -> Int
(BufferUsageFlagBits -> Int)
-> (BufferUsageFlagBits -> Int)
-> (Ptr BufferUsageFlagBits -> Int -> IO BufferUsageFlagBits)
-> (Ptr BufferUsageFlagBits -> Int -> BufferUsageFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO BufferUsageFlagBits)
-> (forall b. Ptr b -> Int -> BufferUsageFlagBits -> IO ())
-> (Ptr BufferUsageFlagBits -> IO BufferUsageFlagBits)
-> (Ptr BufferUsageFlagBits -> BufferUsageFlagBits -> IO ())
-> Storable BufferUsageFlagBits
forall b. Ptr b -> Int -> IO BufferUsageFlagBits
forall b. Ptr b -> Int -> BufferUsageFlagBits -> 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
$csizeOf :: BufferUsageFlagBits -> Int
sizeOf :: BufferUsageFlagBits -> Int
$calignment :: BufferUsageFlagBits -> Int
alignment :: BufferUsageFlagBits -> Int
$cpeekElemOff :: Ptr BufferUsageFlagBits -> Int -> IO BufferUsageFlagBits
peekElemOff :: Ptr BufferUsageFlagBits -> Int -> IO BufferUsageFlagBits
$cpokeElemOff :: Ptr BufferUsageFlagBits -> Int -> BufferUsageFlagBits -> IO ()
pokeElemOff :: Ptr BufferUsageFlagBits -> Int -> BufferUsageFlagBits -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BufferUsageFlagBits
peekByteOff :: forall b. Ptr b -> Int -> IO BufferUsageFlagBits
$cpokeByteOff :: forall b. Ptr b -> Int -> BufferUsageFlagBits -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> BufferUsageFlagBits -> IO ()
$cpeek :: Ptr BufferUsageFlagBits -> IO BufferUsageFlagBits
peek :: Ptr BufferUsageFlagBits -> IO BufferUsageFlagBits
$cpoke :: Ptr BufferUsageFlagBits -> BufferUsageFlagBits -> IO ()
poke :: Ptr BufferUsageFlagBits -> BufferUsageFlagBits -> IO ()
Storable, BufferUsageFlagBits
BufferUsageFlagBits -> Zero BufferUsageFlagBits
forall a. a -> Zero a
$czero :: BufferUsageFlagBits
zero :: BufferUsageFlagBits
Zero, Eq BufferUsageFlagBits
BufferUsageFlagBits
Eq BufferUsageFlagBits =>
(BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits)
-> (BufferUsageFlagBits
    -> BufferUsageFlagBits -> BufferUsageFlagBits)
-> (BufferUsageFlagBits
    -> BufferUsageFlagBits -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> BufferUsageFlagBits
-> (Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> Bool)
-> (BufferUsageFlagBits -> Maybe Int)
-> (BufferUsageFlagBits -> Int)
-> (BufferUsageFlagBits -> Bool)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int -> BufferUsageFlagBits)
-> (BufferUsageFlagBits -> Int)
-> Bits BufferUsageFlagBits
Int -> BufferUsageFlagBits
BufferUsageFlagBits -> Bool
BufferUsageFlagBits -> Int
BufferUsageFlagBits -> Maybe Int
BufferUsageFlagBits -> BufferUsageFlagBits
BufferUsageFlagBits -> Int -> Bool
BufferUsageFlagBits -> Int -> BufferUsageFlagBits
BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
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
$c.&. :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
.&. :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
$c.|. :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
.|. :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
$cxor :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
xor :: BufferUsageFlagBits -> BufferUsageFlagBits -> BufferUsageFlagBits
$ccomplement :: BufferUsageFlagBits -> BufferUsageFlagBits
complement :: BufferUsageFlagBits -> BufferUsageFlagBits
$cshift :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
shift :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$crotate :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
rotate :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$czeroBits :: BufferUsageFlagBits
zeroBits :: BufferUsageFlagBits
$cbit :: Int -> BufferUsageFlagBits
bit :: Int -> BufferUsageFlagBits
$csetBit :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
setBit :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$cclearBit :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
clearBit :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$ccomplementBit :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
complementBit :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$ctestBit :: BufferUsageFlagBits -> Int -> Bool
testBit :: BufferUsageFlagBits -> Int -> Bool
$cbitSizeMaybe :: BufferUsageFlagBits -> Maybe Int
bitSizeMaybe :: BufferUsageFlagBits -> Maybe Int
$cbitSize :: BufferUsageFlagBits -> Int
bitSize :: BufferUsageFlagBits -> Int
$cisSigned :: BufferUsageFlagBits -> Bool
isSigned :: BufferUsageFlagBits -> Bool
$cshiftL :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
shiftL :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$cunsafeShiftL :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
unsafeShiftL :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$cshiftR :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
shiftR :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$cunsafeShiftR :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
unsafeShiftR :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$crotateL :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
rotateL :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$crotateR :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
rotateR :: BufferUsageFlagBits -> Int -> BufferUsageFlagBits
$cpopCount :: BufferUsageFlagBits -> Int
popCount :: BufferUsageFlagBits -> Int
Bits, Bits BufferUsageFlagBits
Bits BufferUsageFlagBits =>
(BufferUsageFlagBits -> Int)
-> (BufferUsageFlagBits -> Int)
-> (BufferUsageFlagBits -> Int)
-> FiniteBits BufferUsageFlagBits
BufferUsageFlagBits -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: BufferUsageFlagBits -> Int
finiteBitSize :: BufferUsageFlagBits -> Int
$ccountLeadingZeros :: BufferUsageFlagBits -> Int
countLeadingZeros :: BufferUsageFlagBits -> Int
$ccountTrailingZeros :: BufferUsageFlagBits -> Int
countTrailingZeros :: BufferUsageFlagBits -> Int
FiniteBits)

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"
pattern $mBUFFER_USAGE_TRANSFER_SRC_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_TRANSFER_SRC_BIT :: BufferUsageFlagBits
BUFFER_USAGE_TRANSFER_SRC_BIT = BufferUsageFlagBits 0x00000001

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_TRANSFER_DST_BIT"
pattern $mBUFFER_USAGE_TRANSFER_DST_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_TRANSFER_DST_BIT :: BufferUsageFlagBits
BUFFER_USAGE_TRANSFER_DST_BIT = BufferUsageFlagBits 0x00000002

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"
pattern $mBUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT :: BufferUsageFlagBits
BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = BufferUsageFlagBits 0x00000004

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"
pattern $mBUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT :: BufferUsageFlagBits
BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = BufferUsageFlagBits 0x00000008

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"
pattern $mBUFFER_USAGE_UNIFORM_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_UNIFORM_BUFFER_BIT :: BufferUsageFlagBits
BUFFER_USAGE_UNIFORM_BUFFER_BIT = BufferUsageFlagBits 0x00000010

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"
pattern $mBUFFER_USAGE_STORAGE_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_STORAGE_BUFFER_BIT :: BufferUsageFlagBits
BUFFER_USAGE_STORAGE_BUFFER_BIT = BufferUsageFlagBits 0x00000020

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"
pattern $mBUFFER_USAGE_INDEX_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_INDEX_BUFFER_BIT :: BufferUsageFlagBits
BUFFER_USAGE_INDEX_BUFFER_BIT = BufferUsageFlagBits 0x00000040

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"
pattern $mBUFFER_USAGE_VERTEX_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_VERTEX_BUFFER_BIT :: BufferUsageFlagBits
BUFFER_USAGE_VERTEX_BUFFER_BIT = BufferUsageFlagBits 0x00000080

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"
pattern $mBUFFER_USAGE_INDIRECT_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_INDIRECT_BUFFER_BIT :: BufferUsageFlagBits
BUFFER_USAGE_INDIRECT_BUFFER_BIT = BufferUsageFlagBits 0x00000100

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM"
pattern $mBUFFER_USAGE_TILE_MEMORY_BIT_QCOM :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_TILE_MEMORY_BIT_QCOM :: BufferUsageFlagBits
BUFFER_USAGE_TILE_MEMORY_BIT_QCOM = BufferUsageFlagBits 0x08000000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT"
pattern $mBUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT :: BufferUsageFlagBits
BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = BufferUsageFlagBits 0x01000000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"
pattern $mBUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT :: BufferUsageFlagBits
BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = BufferUsageFlagBits 0x00800000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits
BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits 0x04000000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits
BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits 0x00400000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits
BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits 0x00200000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"
pattern $mBUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR :: BufferUsageFlagBits
BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = BufferUsageFlagBits 0x00000400

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"
pattern $mBUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR :: BufferUsageFlagBits
BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = BufferUsageFlagBits 0x00100000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"
pattern $mBUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR :: BufferUsageFlagBits
BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = BufferUsageFlagBits 0x00080000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT"
pattern $mBUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT :: BufferUsageFlagBits
BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT = BufferUsageFlagBits 0x10000000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"
pattern $mBUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX :: BufferUsageFlagBits
BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = BufferUsageFlagBits 0x02000000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"
pattern $mBUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT :: BufferUsageFlagBits
BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = BufferUsageFlagBits 0x00000200

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: BufferUsageFlagBits
BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = BufferUsageFlagBits 0x00001000

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: BufferUsageFlagBits
BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = BufferUsageFlagBits 0x00000800

-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"
pattern $mBUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT :: forall {r}.
BufferUsageFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT :: BufferUsageFlagBits
BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = BufferUsageFlagBits 0x00020000

conNameBufferUsageFlagBits :: String
conNameBufferUsageFlagBits :: String
conNameBufferUsageFlagBits = String
"BufferUsageFlagBits"

enumPrefixBufferUsageFlagBits :: String
enumPrefixBufferUsageFlagBits :: String
enumPrefixBufferUsageFlagBits = String
"BUFFER_USAGE_"

showTableBufferUsageFlagBits :: [(BufferUsageFlagBits, String)]
showTableBufferUsageFlagBits :: [(BufferUsageFlagBits, String)]
showTableBufferUsageFlagBits =
  [
    ( BufferUsageFlagBits
BUFFER_USAGE_TRANSFER_SRC_BIT
    , String
"TRANSFER_SRC_BIT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_TRANSFER_DST_BIT
    , String
"TRANSFER_DST_BIT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
    , String
"UNIFORM_TEXEL_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
    , String
"STORAGE_TEXEL_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_UNIFORM_BUFFER_BIT
    , String
"UNIFORM_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_STORAGE_BUFFER_BIT
    , String
"STORAGE_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_INDEX_BUFFER_BIT
    , String
"INDEX_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_VERTEX_BUFFER_BIT
    , String
"VERTEX_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_INDIRECT_BUFFER_BIT
    , String
"INDIRECT_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_TILE_MEMORY_BIT_QCOM
    , String
"TILE_MEMORY_BIT_QCOM"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT
    , String
"MICROMAP_STORAGE_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT
    , String
"MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
    , String
"PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
    , String
"RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
    , String
"SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR
    , String
"SHADER_BINDING_TABLE_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
    , String
"ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
    , String
"ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT
    , String
"DESCRIPTOR_HEAP_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
    , String
"EXECUTION_GRAPH_SCRATCH_BIT_AMDX"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
    , String
"CONDITIONAL_RENDERING_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
    , String
"TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
    , String
"TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits
BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
    , String
"SHADER_DEVICE_ADDRESS_BIT"
    )
  ]

instance Show BufferUsageFlagBits where
  showsPrec :: Int -> BufferUsageFlagBits -> ShowS
showsPrec =
    String
-> [(BufferUsageFlagBits, String)]
-> String
-> (BufferUsageFlagBits -> Word32)
-> (Word32 -> ShowS)
-> Int
-> BufferUsageFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixBufferUsageFlagBits
      [(BufferUsageFlagBits, String)]
showTableBufferUsageFlagBits
      String
conNameBufferUsageFlagBits
      (\(BufferUsageFlagBits Word32
x) -> Word32
x)
      (\Word32
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word32 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word32
x)

instance Read BufferUsageFlagBits where
  readPrec :: ReadPrec BufferUsageFlagBits
readPrec =
    String
-> [(BufferUsageFlagBits, String)]
-> String
-> (Word32 -> BufferUsageFlagBits)
-> ReadPrec BufferUsageFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixBufferUsageFlagBits
      [(BufferUsageFlagBits, String)]
showTableBufferUsageFlagBits
      String
conNameBufferUsageFlagBits
      Word32 -> BufferUsageFlagBits
BufferUsageFlagBits