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



conNameDeviceCreateFlags :: String
conNameDeviceCreateFlags :: String
conNameDeviceCreateFlags = String
"DeviceCreateFlags"

enumPrefixDeviceCreateFlags :: String
enumPrefixDeviceCreateFlags :: String
enumPrefixDeviceCreateFlags = String
""

showTableDeviceCreateFlags :: [(DeviceCreateFlags, String)]
showTableDeviceCreateFlags :: [(DeviceCreateFlags, String)]
showTableDeviceCreateFlags = []

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