{-# language CPP #-}
-- No documentation found for Chapter "BufferCreateFlagBits"
module Vulkan.Core10.Enums.BufferCreateFlagBits  ( BufferCreateFlags
                                                 , BufferCreateFlagBits( BUFFER_CREATE_SPARSE_BINDING_BIT
                                                                       , BUFFER_CREATE_SPARSE_RESIDENCY_BIT
                                                                       , BUFFER_CREATE_SPARSE_ALIASED_BIT
                                                                       , BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
                                                                       , BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
                                                                       , BUFFER_CREATE_PROTECTED_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 BufferCreateFlags = BufferCreateFlagBits

-- | VkBufferCreateFlagBits - Bitmask specifying additional parameters of a
-- buffer
--
-- = Description
--
-- -   'BUFFER_CREATE_SPARSE_BINDING_BIT' specifies that the buffer will be
--     backed using sparse memory binding.
--
-- -   'BUFFER_CREATE_SPARSE_RESIDENCY_BIT' specifies that the buffer /can/
--     be partially backed using sparse memory binding. Buffers created
--     with this flag /must/ also be created with the
--     'BUFFER_CREATE_SPARSE_BINDING_BIT' flag.
--
-- -   'BUFFER_CREATE_SPARSE_ALIASED_BIT' specifies that the buffer will be
--     backed using sparse memory binding with memory ranges that might
--     also simultaneously be backing another buffer (or another portion of
--     the same buffer). Buffers created with this flag /must/ also be
--     created with the 'BUFFER_CREATE_SPARSE_BINDING_BIT' flag.
--
-- -   'BUFFER_CREATE_PROTECTED_BIT' specifies that the buffer is a
--     protected buffer.
--
-- -   'BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' specifies that the
--     buffer’s address /can/ be saved and reused on a subsequent run (e.g.
--     for trace capture and replay), see
--     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo'
--     for more detail.
--
-- -   'BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' specifies
--     that the buffer /can/ be used with descriptor buffers when capturing
--     and replaying (e.g. for trace capture and replay), see
--     'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT'
--     for more detail.
--
-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBufferCreateFlagBits VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR>
--     specifies that the buffer /can/ be used in
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-coding video coding operations>
--     without having to specify at buffer creation time the set of video
--     profiles the buffer will be used with.
--
-- See
-- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#sparsememory-sparseresourcefeatures Sparse Resource Features>
-- and
-- <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#features Physical Device Features>
-- for details of the sparse memory features supported on a device.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'BufferCreateFlags'
newtype BufferCreateFlagBits = BufferCreateFlagBits Flags
  deriving newtype (BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
(BufferCreateFlagBits -> BufferCreateFlagBits -> Bool)
-> (BufferCreateFlagBits -> BufferCreateFlagBits -> Bool)
-> Eq BufferCreateFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
== :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
$c/= :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
/= :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
Eq, Eq BufferCreateFlagBits
Eq BufferCreateFlagBits =>
(BufferCreateFlagBits -> BufferCreateFlagBits -> Ordering)
-> (BufferCreateFlagBits -> BufferCreateFlagBits -> Bool)
-> (BufferCreateFlagBits -> BufferCreateFlagBits -> Bool)
-> (BufferCreateFlagBits -> BufferCreateFlagBits -> Bool)
-> (BufferCreateFlagBits -> BufferCreateFlagBits -> Bool)
-> (BufferCreateFlagBits
    -> BufferCreateFlagBits -> BufferCreateFlagBits)
-> (BufferCreateFlagBits
    -> BufferCreateFlagBits -> BufferCreateFlagBits)
-> Ord BufferCreateFlagBits
BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
BufferCreateFlagBits -> BufferCreateFlagBits -> Ordering
BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
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 :: BufferCreateFlagBits -> BufferCreateFlagBits -> Ordering
compare :: BufferCreateFlagBits -> BufferCreateFlagBits -> Ordering
$c< :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
< :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
$c<= :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
<= :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
$c> :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
> :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
$c>= :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
>= :: BufferCreateFlagBits -> BufferCreateFlagBits -> Bool
$cmax :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
max :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
$cmin :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
min :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
Ord, Ptr BufferCreateFlagBits -> IO BufferCreateFlagBits
Ptr BufferCreateFlagBits -> Int -> IO BufferCreateFlagBits
Ptr BufferCreateFlagBits -> Int -> BufferCreateFlagBits -> IO ()
Ptr BufferCreateFlagBits -> BufferCreateFlagBits -> IO ()
BufferCreateFlagBits -> Int
(BufferCreateFlagBits -> Int)
-> (BufferCreateFlagBits -> Int)
-> (Ptr BufferCreateFlagBits -> Int -> IO BufferCreateFlagBits)
-> (Ptr BufferCreateFlagBits
    -> Int -> BufferCreateFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO BufferCreateFlagBits)
-> (forall b. Ptr b -> Int -> BufferCreateFlagBits -> IO ())
-> (Ptr BufferCreateFlagBits -> IO BufferCreateFlagBits)
-> (Ptr BufferCreateFlagBits -> BufferCreateFlagBits -> IO ())
-> Storable BufferCreateFlagBits
forall b. Ptr b -> Int -> IO BufferCreateFlagBits
forall b. Ptr b -> Int -> BufferCreateFlagBits -> 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 :: BufferCreateFlagBits -> Int
sizeOf :: BufferCreateFlagBits -> Int
$calignment :: BufferCreateFlagBits -> Int
alignment :: BufferCreateFlagBits -> Int
$cpeekElemOff :: Ptr BufferCreateFlagBits -> Int -> IO BufferCreateFlagBits
peekElemOff :: Ptr BufferCreateFlagBits -> Int -> IO BufferCreateFlagBits
$cpokeElemOff :: Ptr BufferCreateFlagBits -> Int -> BufferCreateFlagBits -> IO ()
pokeElemOff :: Ptr BufferCreateFlagBits -> Int -> BufferCreateFlagBits -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BufferCreateFlagBits
peekByteOff :: forall b. Ptr b -> Int -> IO BufferCreateFlagBits
$cpokeByteOff :: forall b. Ptr b -> Int -> BufferCreateFlagBits -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> BufferCreateFlagBits -> IO ()
$cpeek :: Ptr BufferCreateFlagBits -> IO BufferCreateFlagBits
peek :: Ptr BufferCreateFlagBits -> IO BufferCreateFlagBits
$cpoke :: Ptr BufferCreateFlagBits -> BufferCreateFlagBits -> IO ()
poke :: Ptr BufferCreateFlagBits -> BufferCreateFlagBits -> IO ()
Storable, BufferCreateFlagBits
BufferCreateFlagBits -> Zero BufferCreateFlagBits
forall a. a -> Zero a
$czero :: BufferCreateFlagBits
zero :: BufferCreateFlagBits
Zero, Eq BufferCreateFlagBits
BufferCreateFlagBits
Eq BufferCreateFlagBits =>
(BufferCreateFlagBits
 -> BufferCreateFlagBits -> BufferCreateFlagBits)
-> (BufferCreateFlagBits
    -> BufferCreateFlagBits -> BufferCreateFlagBits)
-> (BufferCreateFlagBits
    -> BufferCreateFlagBits -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> BufferCreateFlagBits
-> (Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> Bool)
-> (BufferCreateFlagBits -> Maybe Int)
-> (BufferCreateFlagBits -> Int)
-> (BufferCreateFlagBits -> Bool)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int -> BufferCreateFlagBits)
-> (BufferCreateFlagBits -> Int)
-> Bits BufferCreateFlagBits
Int -> BufferCreateFlagBits
BufferCreateFlagBits -> Bool
BufferCreateFlagBits -> Int
BufferCreateFlagBits -> Maybe Int
BufferCreateFlagBits -> BufferCreateFlagBits
BufferCreateFlagBits -> Int -> Bool
BufferCreateFlagBits -> Int -> BufferCreateFlagBits
BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
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.&. :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
.&. :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
$c.|. :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
.|. :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
$cxor :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
xor :: BufferCreateFlagBits
-> BufferCreateFlagBits -> BufferCreateFlagBits
$ccomplement :: BufferCreateFlagBits -> BufferCreateFlagBits
complement :: BufferCreateFlagBits -> BufferCreateFlagBits
$cshift :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
shift :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$crotate :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
rotate :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$czeroBits :: BufferCreateFlagBits
zeroBits :: BufferCreateFlagBits
$cbit :: Int -> BufferCreateFlagBits
bit :: Int -> BufferCreateFlagBits
$csetBit :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
setBit :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$cclearBit :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
clearBit :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$ccomplementBit :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
complementBit :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$ctestBit :: BufferCreateFlagBits -> Int -> Bool
testBit :: BufferCreateFlagBits -> Int -> Bool
$cbitSizeMaybe :: BufferCreateFlagBits -> Maybe Int
bitSizeMaybe :: BufferCreateFlagBits -> Maybe Int
$cbitSize :: BufferCreateFlagBits -> Int
bitSize :: BufferCreateFlagBits -> Int
$cisSigned :: BufferCreateFlagBits -> Bool
isSigned :: BufferCreateFlagBits -> Bool
$cshiftL :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
shiftL :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$cunsafeShiftL :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
unsafeShiftL :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$cshiftR :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
shiftR :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$cunsafeShiftR :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
unsafeShiftR :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$crotateL :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
rotateL :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$crotateR :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
rotateR :: BufferCreateFlagBits -> Int -> BufferCreateFlagBits
$cpopCount :: BufferCreateFlagBits -> Int
popCount :: BufferCreateFlagBits -> Int
Bits, Bits BufferCreateFlagBits
Bits BufferCreateFlagBits =>
(BufferCreateFlagBits -> Int)
-> (BufferCreateFlagBits -> Int)
-> (BufferCreateFlagBits -> Int)
-> FiniteBits BufferCreateFlagBits
BufferCreateFlagBits -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: BufferCreateFlagBits -> Int
finiteBitSize :: BufferCreateFlagBits -> Int
$ccountLeadingZeros :: BufferCreateFlagBits -> Int
countLeadingZeros :: BufferCreateFlagBits -> Int
$ccountTrailingZeros :: BufferCreateFlagBits -> Int
countTrailingZeros :: BufferCreateFlagBits -> Int
FiniteBits)

-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"
pattern $mBUFFER_CREATE_SPARSE_BINDING_BIT :: forall {r}.
BufferCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_CREATE_SPARSE_BINDING_BIT :: BufferCreateFlagBits
BUFFER_CREATE_SPARSE_BINDING_BIT = BufferCreateFlagBits 0x00000001

-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"
pattern $mBUFFER_CREATE_SPARSE_RESIDENCY_BIT :: forall {r}.
BufferCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_CREATE_SPARSE_RESIDENCY_BIT :: BufferCreateFlagBits
BUFFER_CREATE_SPARSE_RESIDENCY_BIT = BufferCreateFlagBits 0x00000002

-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"
pattern $mBUFFER_CREATE_SPARSE_ALIASED_BIT :: forall {r}.
BufferCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_CREATE_SPARSE_ALIASED_BIT :: BufferCreateFlagBits
BUFFER_CREATE_SPARSE_ALIASED_BIT = BufferCreateFlagBits 0x00000004

-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"
pattern $mBUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT :: forall {r}.
BufferCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT :: BufferCreateFlagBits
BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = BufferCreateFlagBits 0x00000020

-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"
pattern $mBUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT :: forall {r}.
BufferCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT :: BufferCreateFlagBits
BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = BufferCreateFlagBits 0x00000010

-- No documentation found for Nested "VkBufferCreateFlagBits" "VK_BUFFER_CREATE_PROTECTED_BIT"
pattern $mBUFFER_CREATE_PROTECTED_BIT :: forall {r}.
BufferCreateFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_CREATE_PROTECTED_BIT :: BufferCreateFlagBits
BUFFER_CREATE_PROTECTED_BIT = BufferCreateFlagBits 0x00000008

conNameBufferCreateFlagBits :: String
conNameBufferCreateFlagBits :: String
conNameBufferCreateFlagBits = String
"BufferCreateFlagBits"

enumPrefixBufferCreateFlagBits :: String
enumPrefixBufferCreateFlagBits :: String
enumPrefixBufferCreateFlagBits = String
"BUFFER_CREATE_"

showTableBufferCreateFlagBits :: [(BufferCreateFlagBits, String)]
showTableBufferCreateFlagBits :: [(BufferCreateFlagBits, String)]
showTableBufferCreateFlagBits =
  [
    ( BufferCreateFlagBits
BUFFER_CREATE_SPARSE_BINDING_BIT
    , String
"SPARSE_BINDING_BIT"
    )
  ,
    ( BufferCreateFlagBits
BUFFER_CREATE_SPARSE_RESIDENCY_BIT
    , String
"SPARSE_RESIDENCY_BIT"
    )
  ,
    ( BufferCreateFlagBits
BUFFER_CREATE_SPARSE_ALIASED_BIT
    , String
"SPARSE_ALIASED_BIT"
    )
  ,
    ( BufferCreateFlagBits
BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
    , String
"DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT"
    )
  ,
    ( BufferCreateFlagBits
BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
    , String
"DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"
    )
  ,
    ( BufferCreateFlagBits
BUFFER_CREATE_PROTECTED_BIT
    , String
"PROTECTED_BIT"
    )
  ]

instance Show BufferCreateFlagBits where
  showsPrec :: Int -> BufferCreateFlagBits -> ShowS
showsPrec =
    String
-> [(BufferCreateFlagBits, String)]
-> String
-> (BufferCreateFlagBits -> Word32)
-> (Word32 -> ShowS)
-> Int
-> BufferCreateFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixBufferCreateFlagBits
      [(BufferCreateFlagBits, String)]
showTableBufferCreateFlagBits
      String
conNameBufferCreateFlagBits
      (\(BufferCreateFlagBits 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 BufferCreateFlagBits where
  readPrec :: ReadPrec BufferCreateFlagBits
readPrec =
    String
-> [(BufferCreateFlagBits, String)]
-> String
-> (Word32 -> BufferCreateFlagBits)
-> ReadPrec BufferCreateFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixBufferCreateFlagBits
      [(BufferCreateFlagBits, String)]
showTableBufferCreateFlagBits
      String
conNameBufferCreateFlagBits
      Word32 -> BufferCreateFlagBits
BufferCreateFlagBits