{-# LANGUAGE DataKinds                  #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE Strict                     #-}
module Graphics.Vulkan.Types.Enum.InstanceCreateFlagBits
       (VkInstanceCreateFlagBits(..)) where
import Data.Bits                       (Bits, FiniteBits)
import Data.Coerce                     (coerce)
import Foreign.Storable                (Storable)
import Graphics.Vulkan.Types.BaseTypes (VkFlags)

newtype VkInstanceCreateFlagBits = VkInstanceCreateFlagBits VkFlags
                                   deriving (VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
(VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool)
-> (VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool)
-> Eq VkInstanceCreateFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
$c/= :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
== :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
$c== :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
Eq, Eq VkInstanceCreateFlagBits
Eq VkInstanceCreateFlagBits
-> (VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits -> Ordering)
-> (VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool)
-> (VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool)
-> (VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool)
-> (VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool)
-> (VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits)
-> Ord VkInstanceCreateFlagBits
VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Ordering
VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
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 :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
$cmin :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
max :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
$cmax :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
>= :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
$c>= :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
> :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
$c> :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
<= :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
$c<= :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
< :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
$c< :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Bool
compare :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Ordering
$ccompare :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> Ordering
Ord, Int -> VkInstanceCreateFlagBits
VkInstanceCreateFlagBits -> Int
VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits]
VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits]
VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits
-> [VkInstanceCreateFlagBits]
(VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits)
-> (Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int)
-> (VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits])
-> (VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits])
-> (VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits])
-> (VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits
    -> [VkInstanceCreateFlagBits])
-> Enum VkInstanceCreateFlagBits
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits
-> [VkInstanceCreateFlagBits]
$cenumFromThenTo :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits
-> [VkInstanceCreateFlagBits]
enumFromTo :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits]
$cenumFromTo :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits]
enumFromThen :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits]
$cenumFromThen :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits]
enumFrom :: VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits]
$cenumFrom :: VkInstanceCreateFlagBits -> [VkInstanceCreateFlagBits]
fromEnum :: VkInstanceCreateFlagBits -> Int
$cfromEnum :: VkInstanceCreateFlagBits -> Int
toEnum :: Int -> VkInstanceCreateFlagBits
$ctoEnum :: Int -> VkInstanceCreateFlagBits
pred :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
$cpred :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
succ :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
$csucc :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
Enum, Eq VkInstanceCreateFlagBits
VkInstanceCreateFlagBits
Eq VkInstanceCreateFlagBits
-> (VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> VkInstanceCreateFlagBits
-> (Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> Bool)
-> (VkInstanceCreateFlagBits -> Maybe Int)
-> (VkInstanceCreateFlagBits -> Int)
-> (VkInstanceCreateFlagBits -> Bool)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits)
-> (VkInstanceCreateFlagBits -> Int)
-> Bits VkInstanceCreateFlagBits
Int -> VkInstanceCreateFlagBits
VkInstanceCreateFlagBits -> Bool
VkInstanceCreateFlagBits -> Int
VkInstanceCreateFlagBits -> Maybe Int
VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
VkInstanceCreateFlagBits -> Int -> Bool
VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
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 :: VkInstanceCreateFlagBits -> Int
$cpopCount :: VkInstanceCreateFlagBits -> Int
rotateR :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$crotateR :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
rotateL :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$crotateL :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
unsafeShiftR :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$cunsafeShiftR :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
shiftR :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$cshiftR :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
unsafeShiftL :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$cunsafeShiftL :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
shiftL :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$cshiftL :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
isSigned :: VkInstanceCreateFlagBits -> Bool
$cisSigned :: VkInstanceCreateFlagBits -> Bool
bitSize :: VkInstanceCreateFlagBits -> Int
$cbitSize :: VkInstanceCreateFlagBits -> Int
bitSizeMaybe :: VkInstanceCreateFlagBits -> Maybe Int
$cbitSizeMaybe :: VkInstanceCreateFlagBits -> Maybe Int
testBit :: VkInstanceCreateFlagBits -> Int -> Bool
$ctestBit :: VkInstanceCreateFlagBits -> Int -> Bool
complementBit :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$ccomplementBit :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
clearBit :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$cclearBit :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
setBit :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$csetBit :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
bit :: Int -> VkInstanceCreateFlagBits
$cbit :: Int -> VkInstanceCreateFlagBits
zeroBits :: VkInstanceCreateFlagBits
$czeroBits :: VkInstanceCreateFlagBits
rotate :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$crotate :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
shift :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
$cshift :: VkInstanceCreateFlagBits -> Int -> VkInstanceCreateFlagBits
complement :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
$ccomplement :: VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
xor :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
$cxor :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
.|. :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
$c.|. :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
.&. :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
$c.&. :: VkInstanceCreateFlagBits
-> VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits
Bits, Bits VkInstanceCreateFlagBits
Bits VkInstanceCreateFlagBits
-> (VkInstanceCreateFlagBits -> Int)
-> (VkInstanceCreateFlagBits -> Int)
-> (VkInstanceCreateFlagBits -> Int)
-> FiniteBits VkInstanceCreateFlagBits
VkInstanceCreateFlagBits -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: VkInstanceCreateFlagBits -> Int
$ccountTrailingZeros :: VkInstanceCreateFlagBits -> Int
countLeadingZeros :: VkInstanceCreateFlagBits -> Int
$ccountLeadingZeros :: VkInstanceCreateFlagBits -> Int
finiteBitSize :: VkInstanceCreateFlagBits -> Int
$cfiniteBitSize :: VkInstanceCreateFlagBits -> Int
FiniteBits, Ptr VkInstanceCreateFlagBits -> IO VkInstanceCreateFlagBits
Ptr VkInstanceCreateFlagBits -> Int -> IO VkInstanceCreateFlagBits
Ptr VkInstanceCreateFlagBits
-> Int -> VkInstanceCreateFlagBits -> IO ()
Ptr VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> IO ()
VkInstanceCreateFlagBits -> Int
(VkInstanceCreateFlagBits -> Int)
-> (VkInstanceCreateFlagBits -> Int)
-> (Ptr VkInstanceCreateFlagBits
    -> Int -> IO VkInstanceCreateFlagBits)
-> (Ptr VkInstanceCreateFlagBits
    -> Int -> VkInstanceCreateFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO VkInstanceCreateFlagBits)
-> (forall b. Ptr b -> Int -> VkInstanceCreateFlagBits -> IO ())
-> (Ptr VkInstanceCreateFlagBits -> IO VkInstanceCreateFlagBits)
-> (Ptr VkInstanceCreateFlagBits
    -> VkInstanceCreateFlagBits -> IO ())
-> Storable VkInstanceCreateFlagBits
forall b. Ptr b -> Int -> IO VkInstanceCreateFlagBits
forall b. Ptr b -> Int -> VkInstanceCreateFlagBits -> 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 VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> IO ()
$cpoke :: Ptr VkInstanceCreateFlagBits -> VkInstanceCreateFlagBits -> IO ()
peek :: Ptr VkInstanceCreateFlagBits -> IO VkInstanceCreateFlagBits
$cpeek :: Ptr VkInstanceCreateFlagBits -> IO VkInstanceCreateFlagBits
pokeByteOff :: forall b. Ptr b -> Int -> VkInstanceCreateFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkInstanceCreateFlagBits -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO VkInstanceCreateFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkInstanceCreateFlagBits
pokeElemOff :: Ptr VkInstanceCreateFlagBits
-> Int -> VkInstanceCreateFlagBits -> IO ()
$cpokeElemOff :: Ptr VkInstanceCreateFlagBits
-> Int -> VkInstanceCreateFlagBits -> IO ()
peekElemOff :: Ptr VkInstanceCreateFlagBits -> Int -> IO VkInstanceCreateFlagBits
$cpeekElemOff :: Ptr VkInstanceCreateFlagBits -> Int -> IO VkInstanceCreateFlagBits
alignment :: VkInstanceCreateFlagBits -> Int
$calignment :: VkInstanceCreateFlagBits -> Int
sizeOf :: VkInstanceCreateFlagBits -> Int
$csizeOf :: VkInstanceCreateFlagBits -> Int
Storable)

instance Show VkInstanceCreateFlagBits where
    {-# INLINE showsPrec #-}
    showsPrec :: Int -> VkInstanceCreateFlagBits -> ShowS
showsPrec = (Int -> VkFlags -> ShowS)
-> Int -> VkInstanceCreateFlagBits -> ShowS
coerce (Int -> VkFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec :: Int -> VkFlags -> ShowS)

instance Read VkInstanceCreateFlagBits where
    {-# INLINE readsPrec #-}
    readsPrec :: Int -> ReadS VkInstanceCreateFlagBits
readsPrec = (Int -> ReadS VkFlags) -> Int -> ReadS VkInstanceCreateFlagBits
coerce (Int -> ReadS VkFlags
forall a. Read a => Int -> ReadS a
readsPrec :: Int -> ReadS VkFlags)