{-# language CPP #-}
-- No documentation found for Chapter "SparseMemoryBindFlagBits"
module Vulkan.Core10.Enums.SparseMemoryBindFlagBits  ( SparseMemoryBindFlags
                                                     , SparseMemoryBindFlagBits( SPARSE_MEMORY_BIND_METADATA_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 SparseMemoryBindFlags = SparseMemoryBindFlagBits

-- | VkSparseMemoryBindFlagBits - Bitmask specifying usage of a sparse memory
-- binding operation
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'SparseMemoryBindFlags'
newtype SparseMemoryBindFlagBits = SparseMemoryBindFlagBits Flags
  deriving newtype (SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
(SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool)
-> (SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool)
-> Eq SparseMemoryBindFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
== :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
$c/= :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
/= :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
Eq, Eq SparseMemoryBindFlagBits
Eq SparseMemoryBindFlagBits =>
(SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Ordering)
-> (SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool)
-> (SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool)
-> (SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool)
-> (SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool)
-> (SparseMemoryBindFlagBits
    -> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits
    -> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits)
-> Ord SparseMemoryBindFlagBits
SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Ordering
SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
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 :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Ordering
compare :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Ordering
$c< :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
< :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
$c<= :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
<= :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
$c> :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
> :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
$c>= :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
>= :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> Bool
$cmax :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
max :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
$cmin :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
min :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
Ord, Ptr SparseMemoryBindFlagBits -> IO SparseMemoryBindFlagBits
Ptr SparseMemoryBindFlagBits -> Int -> IO SparseMemoryBindFlagBits
Ptr SparseMemoryBindFlagBits
-> Int -> SparseMemoryBindFlagBits -> IO ()
Ptr SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> IO ()
SparseMemoryBindFlagBits -> Int
(SparseMemoryBindFlagBits -> Int)
-> (SparseMemoryBindFlagBits -> Int)
-> (Ptr SparseMemoryBindFlagBits
    -> Int -> IO SparseMemoryBindFlagBits)
-> (Ptr SparseMemoryBindFlagBits
    -> Int -> SparseMemoryBindFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO SparseMemoryBindFlagBits)
-> (forall b. Ptr b -> Int -> SparseMemoryBindFlagBits -> IO ())
-> (Ptr SparseMemoryBindFlagBits -> IO SparseMemoryBindFlagBits)
-> (Ptr SparseMemoryBindFlagBits
    -> SparseMemoryBindFlagBits -> IO ())
-> Storable SparseMemoryBindFlagBits
forall b. Ptr b -> Int -> IO SparseMemoryBindFlagBits
forall b. Ptr b -> Int -> SparseMemoryBindFlagBits -> 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 :: SparseMemoryBindFlagBits -> Int
sizeOf :: SparseMemoryBindFlagBits -> Int
$calignment :: SparseMemoryBindFlagBits -> Int
alignment :: SparseMemoryBindFlagBits -> Int
$cpeekElemOff :: Ptr SparseMemoryBindFlagBits -> Int -> IO SparseMemoryBindFlagBits
peekElemOff :: Ptr SparseMemoryBindFlagBits -> Int -> IO SparseMemoryBindFlagBits
$cpokeElemOff :: Ptr SparseMemoryBindFlagBits
-> Int -> SparseMemoryBindFlagBits -> IO ()
pokeElemOff :: Ptr SparseMemoryBindFlagBits
-> Int -> SparseMemoryBindFlagBits -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SparseMemoryBindFlagBits
peekByteOff :: forall b. Ptr b -> Int -> IO SparseMemoryBindFlagBits
$cpokeByteOff :: forall b. Ptr b -> Int -> SparseMemoryBindFlagBits -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SparseMemoryBindFlagBits -> IO ()
$cpeek :: Ptr SparseMemoryBindFlagBits -> IO SparseMemoryBindFlagBits
peek :: Ptr SparseMemoryBindFlagBits -> IO SparseMemoryBindFlagBits
$cpoke :: Ptr SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> IO ()
poke :: Ptr SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits -> IO ()
Storable, SparseMemoryBindFlagBits
SparseMemoryBindFlagBits -> Zero SparseMemoryBindFlagBits
forall a. a -> Zero a
$czero :: SparseMemoryBindFlagBits
zero :: SparseMemoryBindFlagBits
Zero, Eq SparseMemoryBindFlagBits
SparseMemoryBindFlagBits
Eq SparseMemoryBindFlagBits =>
(SparseMemoryBindFlagBits
 -> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits
    -> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits
    -> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> SparseMemoryBindFlagBits
-> (Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> Bool)
-> (SparseMemoryBindFlagBits -> Maybe Int)
-> (SparseMemoryBindFlagBits -> Int)
-> (SparseMemoryBindFlagBits -> Bool)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits)
-> (SparseMemoryBindFlagBits -> Int)
-> Bits SparseMemoryBindFlagBits
Int -> SparseMemoryBindFlagBits
SparseMemoryBindFlagBits -> Bool
SparseMemoryBindFlagBits -> Int
SparseMemoryBindFlagBits -> Maybe Int
SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
SparseMemoryBindFlagBits -> Int -> Bool
SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
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.&. :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
.&. :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
$c.|. :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
.|. :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
$cxor :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
xor :: SparseMemoryBindFlagBits
-> SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
$ccomplement :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
complement :: SparseMemoryBindFlagBits -> SparseMemoryBindFlagBits
$cshift :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
shift :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$crotate :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
rotate :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$czeroBits :: SparseMemoryBindFlagBits
zeroBits :: SparseMemoryBindFlagBits
$cbit :: Int -> SparseMemoryBindFlagBits
bit :: Int -> SparseMemoryBindFlagBits
$csetBit :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
setBit :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$cclearBit :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
clearBit :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$ccomplementBit :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
complementBit :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$ctestBit :: SparseMemoryBindFlagBits -> Int -> Bool
testBit :: SparseMemoryBindFlagBits -> Int -> Bool
$cbitSizeMaybe :: SparseMemoryBindFlagBits -> Maybe Int
bitSizeMaybe :: SparseMemoryBindFlagBits -> Maybe Int
$cbitSize :: SparseMemoryBindFlagBits -> Int
bitSize :: SparseMemoryBindFlagBits -> Int
$cisSigned :: SparseMemoryBindFlagBits -> Bool
isSigned :: SparseMemoryBindFlagBits -> Bool
$cshiftL :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
shiftL :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$cunsafeShiftL :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
unsafeShiftL :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$cshiftR :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
shiftR :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$cunsafeShiftR :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
unsafeShiftR :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$crotateL :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
rotateL :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$crotateR :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
rotateR :: SparseMemoryBindFlagBits -> Int -> SparseMemoryBindFlagBits
$cpopCount :: SparseMemoryBindFlagBits -> Int
popCount :: SparseMemoryBindFlagBits -> Int
Bits, Bits SparseMemoryBindFlagBits
Bits SparseMemoryBindFlagBits =>
(SparseMemoryBindFlagBits -> Int)
-> (SparseMemoryBindFlagBits -> Int)
-> (SparseMemoryBindFlagBits -> Int)
-> FiniteBits SparseMemoryBindFlagBits
SparseMemoryBindFlagBits -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: SparseMemoryBindFlagBits -> Int
finiteBitSize :: SparseMemoryBindFlagBits -> Int
$ccountLeadingZeros :: SparseMemoryBindFlagBits -> Int
countLeadingZeros :: SparseMemoryBindFlagBits -> Int
$ccountTrailingZeros :: SparseMemoryBindFlagBits -> Int
countTrailingZeros :: SparseMemoryBindFlagBits -> Int
FiniteBits)

-- | 'SPARSE_MEMORY_BIND_METADATA_BIT' specifies that the memory being bound
-- is only for the metadata aspect.
pattern $bSPARSE_MEMORY_BIND_METADATA_BIT :: SparseMemoryBindFlagBits
$mSPARSE_MEMORY_BIND_METADATA_BIT :: forall {r}.
SparseMemoryBindFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r
SPARSE_MEMORY_BIND_METADATA_BIT = SparseMemoryBindFlagBits 0x00000001

conNameSparseMemoryBindFlagBits :: String
conNameSparseMemoryBindFlagBits :: String
conNameSparseMemoryBindFlagBits = String
"SparseMemoryBindFlagBits"

enumPrefixSparseMemoryBindFlagBits :: String
enumPrefixSparseMemoryBindFlagBits :: String
enumPrefixSparseMemoryBindFlagBits = String
"SPARSE_MEMORY_BIND_METADATA_BIT"

showTableSparseMemoryBindFlagBits :: [(SparseMemoryBindFlagBits, String)]
showTableSparseMemoryBindFlagBits :: [(SparseMemoryBindFlagBits, String)]
showTableSparseMemoryBindFlagBits = [(SparseMemoryBindFlagBits
SPARSE_MEMORY_BIND_METADATA_BIT, String
"")]

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

instance Read SparseMemoryBindFlagBits where
  readPrec :: ReadPrec SparseMemoryBindFlagBits
readPrec =
    String
-> [(SparseMemoryBindFlagBits, String)]
-> String
-> (Flags -> SparseMemoryBindFlagBits)
-> ReadPrec SparseMemoryBindFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixSparseMemoryBindFlagBits
      [(SparseMemoryBindFlagBits, String)]
showTableSparseMemoryBindFlagBits
      String
conNameSparseMemoryBindFlagBits
      Flags -> SparseMemoryBindFlagBits
SparseMemoryBindFlagBits