{-# language CPP #-}
-- No documentation found for Chapter "PrivateDataSlotCreateFlags"
module Vulkan.Core13.Enums.PrivateDataSlotCreateFlags  (PrivateDataSlotCreateFlags(..)) where

import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showString)
import Numeric (showHex)
import Vulkan.Zero (Zero)
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
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
/= :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
$c/= :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
== :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
$c== :: 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
min :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$cmin :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
max :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$cmax :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
>= :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags -> Bool
$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
compare :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> Ordering
$ccompare :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> Ordering
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
poke :: Ptr PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> IO ()
$cpoke :: Ptr PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> IO ()
peek :: Ptr PrivateDataSlotCreateFlags -> IO PrivateDataSlotCreateFlags
$cpeek :: Ptr PrivateDataSlotCreateFlags -> IO PrivateDataSlotCreateFlags
pokeByteOff :: forall b. Ptr b -> Int -> PrivateDataSlotCreateFlags -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> PrivateDataSlotCreateFlags -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO PrivateDataSlotCreateFlags
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PrivateDataSlotCreateFlags
pokeElemOff :: Ptr PrivateDataSlotCreateFlags
-> Int -> PrivateDataSlotCreateFlags -> IO ()
$cpokeElemOff :: Ptr PrivateDataSlotCreateFlags
-> Int -> PrivateDataSlotCreateFlags -> IO ()
peekElemOff :: Ptr PrivateDataSlotCreateFlags
-> Int -> IO PrivateDataSlotCreateFlags
$cpeekElemOff :: Ptr PrivateDataSlotCreateFlags
-> Int -> IO PrivateDataSlotCreateFlags
alignment :: PrivateDataSlotCreateFlags -> Int
$calignment :: PrivateDataSlotCreateFlags -> Int
sizeOf :: PrivateDataSlotCreateFlags -> Int
$csizeOf :: PrivateDataSlotCreateFlags -> Int
Storable, PrivateDataSlotCreateFlags
PrivateDataSlotCreateFlags -> Zero PrivateDataSlotCreateFlags
forall a. a -> Zero a
zero :: PrivateDataSlotCreateFlags
$czero :: 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
popCount :: PrivateDataSlotCreateFlags -> Int
$cpopCount :: PrivateDataSlotCreateFlags -> Int
rotateR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$crotateR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
rotateL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$crotateL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
unsafeShiftR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cunsafeShiftR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
shiftR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cshiftR :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
unsafeShiftL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cunsafeShiftL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
shiftL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cshiftL :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
isSigned :: PrivateDataSlotCreateFlags -> Bool
$cisSigned :: PrivateDataSlotCreateFlags -> Bool
bitSize :: PrivateDataSlotCreateFlags -> Int
$cbitSize :: PrivateDataSlotCreateFlags -> Int
bitSizeMaybe :: PrivateDataSlotCreateFlags -> Maybe Int
$cbitSizeMaybe :: PrivateDataSlotCreateFlags -> Maybe Int
testBit :: PrivateDataSlotCreateFlags -> Int -> Bool
$ctestBit :: PrivateDataSlotCreateFlags -> Int -> Bool
complementBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$ccomplementBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
clearBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cclearBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
setBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$csetBit :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
bit :: Int -> PrivateDataSlotCreateFlags
$cbit :: Int -> PrivateDataSlotCreateFlags
zeroBits :: PrivateDataSlotCreateFlags
$czeroBits :: PrivateDataSlotCreateFlags
rotate :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$crotate :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
shift :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
$cshift :: PrivateDataSlotCreateFlags -> Int -> PrivateDataSlotCreateFlags
complement :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$ccomplement :: PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
xor :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$cxor :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
.|. :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$c.|. :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
.&. :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
$c.&. :: PrivateDataSlotCreateFlags
-> PrivateDataSlotCreateFlags -> PrivateDataSlotCreateFlags
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
countTrailingZeros :: PrivateDataSlotCreateFlags -> Int
$ccountTrailingZeros :: PrivateDataSlotCreateFlags -> Int
countLeadingZeros :: PrivateDataSlotCreateFlags -> Int
$ccountLeadingZeros :: PrivateDataSlotCreateFlags -> Int
finiteBitSize :: PrivateDataSlotCreateFlags -> Int
$cfiniteBitSize :: 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, Show 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