{-# language CPP #-}
-- No documentation found for Chapter "PrivateDataSlotCreateFlags"
module Vulkan.Core13.Enums.PrivateDataSlotCreateFlags  (PrivateDataSlotCreateFlags(..)) 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)
-- | VkPrivateDataSlotCreateFlags - Reserved for future use
--
-- = Description
--
-- 'PrivateDataSlotCreateFlags' is a bitmask type for setting a mask, but
-- is currently reserved for future use.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_private_data VK_EXT_private_data>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
-- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.PrivateDataSlotCreateInfo'
newtype PrivateDataSlotCreateFlags = PrivateDataSlotCreateFlags Flags
  deriving newtype (PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
(PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool)
-> (PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> Bool)
-> Eq PrivateDataSlotCreateFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
== :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
$c/= :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
/= :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
Eq, Eq PrivateDataSlotCreateFlags
Eq PrivateDataSlotCreateFlags =>
(PrivateDataSlotCreateFlags
 -> PrivateDataSlotCreateFlags -> Ordering)
-> (PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> Bool)
-> (PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> Bool)
-> (PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> Bool)
-> (PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> Bool)
-> (PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags)
-> Ord PrivateDataSlotCreateFlags
PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> Ordering
PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
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 :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> Ordering
compare :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> Ordering
$c< :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
< :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
$c<= :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
<= :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
$c> :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
> :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
$c>= :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
>= :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
$cmax :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
max :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$cmin :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
min :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
Ord, Ptr PrivateDataSlotCreateFlags -> IO PrivateDataSlotCreateFlags
Ptr PrivateDataSlotCreateFlags
-> Int -> IO PrivateDataSlotCreateFlags
Ptr PrivateDataSlotCreateFlags
-> Int -> PrivateDataSlotCreateFlags -> IO ()
Ptr PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> IO ()
PrivateDataSlotCreateFlags -> Int
(PrivateDataSlotCreateFlags -> Int)
-> (PrivateDataSlotCreateFlags -> Int)
-> (Ptr PrivateDataSlotCreateFlags
    -> Int -> IO PrivateDataSlotCreateFlags)
-> (Ptr PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags -> IO ())
-> (forall b. Ptr b -> Int -> IO PrivateDataSlotCreateFlags)
-> (forall b. Ptr b -> Int -> PrivateDataSlotCreateFlags -> IO ())
-> (Ptr PrivateDataSlotCreateFlags
    -> IO PrivateDataSlotCreateFlags)
-> (Ptr PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> IO ())
-> Storable PrivateDataSlotCreateFlags
forall b. Ptr b -> Int -> IO PrivateDataSlotCreateFlags
forall b. Ptr b -> Int -> PrivateDataSlotCreateFlags -> 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 :: PrivateDataSlotCreateFlags -> Int
sizeOf :: PrivateDataSlotCreateFlags -> Int
$calignment :: PrivateDataSlotCreateFlags -> Int
alignment :: PrivateDataSlotCreateFlags -> Int
$cpeekElemOff :: Ptr PrivateDataSlotCreateFlags
-> Int -> IO PrivateDataSlotCreateFlags
peekElemOff :: Ptr PrivateDataSlotCreateFlags
-> Int -> IO PrivateDataSlotCreateFlags
$cpokeElemOff :: Ptr PrivateDataSlotCreateFlags
-> Int -> PrivateDataSlotCreateFlags -> IO ()
pokeElemOff :: Ptr PrivateDataSlotCreateFlags
-> Int -> PrivateDataSlotCreateFlags -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PrivateDataSlotCreateFlags
peekByteOff :: forall b. Ptr b -> Int -> IO PrivateDataSlotCreateFlags
$cpokeByteOff :: forall b. Ptr b -> Int -> PrivateDataSlotCreateFlags -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> PrivateDataSlotCreateFlags -> IO ()
$cpeek :: Ptr PrivateDataSlotCreateFlags -> IO PrivateDataSlotCreateFlags
peek :: Ptr PrivateDataSlotCreateFlags -> IO PrivateDataSlotCreateFlags
$cpoke :: Ptr PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> IO ()
poke :: Ptr PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> IO ()
Storable, PrivateDataSlotCreateFlags
PrivateDataSlotCreateFlags -> Zero PrivateDataSlotCreateFlags
forall a. a -> Zero a
$czero :: PrivateDataSlotCreateFlags
zero :: PrivateDataSlotCreateFlags
Zero, Eq PrivateDataSlotCreateFlags
PrivateDataSlotCreateFlags
Eq PrivateDataSlotCreateFlags =>
(PrivateDataSlotCreateFlags
 -> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> PrivateDataSlotCreateFlags
-> (Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags -> Int -> Bool)
-> (PrivateDataSlotCreateFlags -> Maybe Int)
-> (PrivateDataSlotCreateFlags -> Int)
-> (PrivateDataSlotCreateFlags -> Bool)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags
    -> Int -> PrivateDataSlotCreateFlags)
-> (PrivateDataSlotCreateFlags -> Int)
-> Bits PrivateDataSlotCreateFlags
Int -> PrivateDataSlotCreateFlags
PrivateDataSlotCreateFlags -> Bool
PrivateDataSlotCreateFlags -> Int
PrivateDataSlotCreateFlags -> Maybe Int
PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
PrivateDataSlotCreateFlags -> Int -> Bool
PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
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.&. :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
.&. :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$c.|. :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
.|. :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$cxor :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
xor :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$ccomplement :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
complement :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$cshift :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
shift :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$crotate :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
rotate :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$czeroBits :: PrivateDataSlotCreateFlags
zeroBits :: PrivateDataSlotCreateFlags
$cbit :: Int -> PrivateDataSlotCreateFlags
bit :: Int -> PrivateDataSlotCreateFlags
$csetBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
setBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cclearBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
clearBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$ccomplementBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
complementBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$ctestBit :: PrivateDataSlotCreateFlags -> Int -> Bool
testBit :: PrivateDataSlotCreateFlags -> Int -> Bool
$cbitSizeMaybe :: PrivateDataSlotCreateFlags -> Maybe Int
bitSizeMaybe :: PrivateDataSlotCreateFlags -> Maybe Int
$cbitSize :: PrivateDataSlotCreateFlags -> Int
bitSize :: PrivateDataSlotCreateFlags -> Int
$cisSigned :: PrivateDataSlotCreateFlags -> Bool
isSigned :: PrivateDataSlotCreateFlags -> Bool
$cshiftL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
shiftL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cunsafeShiftL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
unsafeShiftL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cshiftR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
shiftR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cunsafeShiftR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
unsafeShiftR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$crotateL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
rotateL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$crotateR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
rotateR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cpopCount :: PrivateDataSlotCreateFlags -> Int
popCount :: PrivateDataSlotCreateFlags -> Int
Bits, Bits PrivateDataSlotCreateFlags
Bits PrivateDataSlotCreateFlags =>
(PrivateDataSlotCreateFlags -> Int)
-> (PrivateDataSlotCreateFlags -> Int)
-> (PrivateDataSlotCreateFlags -> Int)
-> FiniteBits PrivateDataSlotCreateFlags
PrivateDataSlotCreateFlags -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: PrivateDataSlotCreateFlags -> Int
finiteBitSize :: PrivateDataSlotCreateFlags -> Int
$ccountLeadingZeros :: PrivateDataSlotCreateFlags -> Int
countLeadingZeros :: PrivateDataSlotCreateFlags -> Int
$ccountTrailingZeros :: PrivateDataSlotCreateFlags -> Int
countTrailingZeros :: PrivateDataSlotCreateFlags -> Int
FiniteBits)

conNamePrivateDataSlotCreateFlags :: String
conNamePrivateDataSlotCreateFlags :: String
conNamePrivateDataSlotCreateFlags = String
"PrivateDataSlotCreateFlags"

enumPrefixPrivateDataSlotCreateFlags :: String
enumPrefixPrivateDataSlotCreateFlags :: String
enumPrefixPrivateDataSlotCreateFlags = String
""

showTablePrivateDataSlotCreateFlags :: [(PrivateDataSlotCreateFlags, String)]
showTablePrivateDataSlotCreateFlags :: [(PrivateDataSlotCreateFlags, String)]
showTablePrivateDataSlotCreateFlags = []

instance Show PrivateDataSlotCreateFlags where
  showsPrec :: Int -> PrivateDataSlotCreateFlags -> ShowS
showsPrec =
    String
-> [(PrivateDataSlotCreateFlags, String)]
-> String
-> (PrivateDataSlotCreateFlags -> Flags)
-> (Flags -> ShowS)
-> Int
-> PrivateDataSlotCreateFlags
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixPrivateDataSlotCreateFlags
      [(PrivateDataSlotCreateFlags, String)]
showTablePrivateDataSlotCreateFlags
      String
conNamePrivateDataSlotCreateFlags
      (\(PrivateDataSlotCreateFlags 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 PrivateDataSlotCreateFlags where
  readPrec :: ReadPrec PrivateDataSlotCreateFlags
readPrec =
    String
-> [(PrivateDataSlotCreateFlags, String)]
-> String
-> (Flags -> PrivateDataSlotCreateFlags)
-> ReadPrec PrivateDataSlotCreateFlags
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixPrivateDataSlotCreateFlags
      [(PrivateDataSlotCreateFlags, String)]
showTablePrivateDataSlotCreateFlags
      String
conNamePrivateDataSlotCreateFlags
      Flags -> PrivateDataSlotCreateFlags
PrivateDataSlotCreateFlags