{-# language CPP #-}
module Vulkan.Core10.Enums.PipelineLayoutCreateFlags  (PipelineLayoutCreateFlags(..)) where

import GHC.Read (choose)
import GHC.Read (expectP)
import GHC.Read (parens)
import GHC.Show (showParen)
import GHC.Show (showString)
import Numeric (showHex)
import Text.ParserCombinators.ReadPrec ((+++))
import Text.ParserCombinators.ReadPrec (prec)
import Text.ParserCombinators.ReadPrec (step)
import Data.Bits (Bits)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import Text.Read.Lex (Lexeme(Ident))
import Vulkan.Core10.BaseType (Flags)
import Vulkan.Zero (Zero)
-- | VkPipelineLayoutCreateFlags - Reserved for future use
--
-- = Description
--
-- 'PipelineLayoutCreateFlags' is a bitmask type for setting a mask, but is
-- currently reserved for future use.
--
-- = See Also
--
-- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo'
newtype PipelineLayoutCreateFlags = PipelineLayoutCreateFlags Flags
  deriving newtype (PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
(PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool)
-> (PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool)
-> Eq PipelineLayoutCreateFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
$c/= :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
== :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
$c== :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
Eq, Eq PipelineLayoutCreateFlags
Eq PipelineLayoutCreateFlags =>
(PipelineLayoutCreateFlags
 -> PipelineLayoutCreateFlags -> Ordering)
-> (PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool)
-> (PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool)
-> (PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool)
-> (PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool)
-> (PipelineLayoutCreateFlags
    -> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags
    -> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags)
-> Ord PipelineLayoutCreateFlags
PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Ordering
PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
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 :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
$cmin :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
max :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
$cmax :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
>= :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
$c>= :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
> :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
$c> :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
<= :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
$c<= :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
< :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
$c< :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Bool
compare :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Ordering
$ccompare :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> Ordering
$cp1Ord :: Eq PipelineLayoutCreateFlags
Ord, Ptr b -> Int -> IO PipelineLayoutCreateFlags
Ptr b -> Int -> PipelineLayoutCreateFlags -> IO ()
Ptr PipelineLayoutCreateFlags -> IO PipelineLayoutCreateFlags
Ptr PipelineLayoutCreateFlags
-> Int -> IO PipelineLayoutCreateFlags
Ptr PipelineLayoutCreateFlags
-> Int -> PipelineLayoutCreateFlags -> IO ()
Ptr PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> IO ()
PipelineLayoutCreateFlags -> Int
(PipelineLayoutCreateFlags -> Int)
-> (PipelineLayoutCreateFlags -> Int)
-> (Ptr PipelineLayoutCreateFlags
    -> Int -> IO PipelineLayoutCreateFlags)
-> (Ptr PipelineLayoutCreateFlags
    -> Int -> PipelineLayoutCreateFlags -> IO ())
-> (forall b. Ptr b -> Int -> IO PipelineLayoutCreateFlags)
-> (forall b. Ptr b -> Int -> PipelineLayoutCreateFlags -> IO ())
-> (Ptr PipelineLayoutCreateFlags -> IO PipelineLayoutCreateFlags)
-> (Ptr PipelineLayoutCreateFlags
    -> PipelineLayoutCreateFlags -> IO ())
-> Storable PipelineLayoutCreateFlags
forall b. Ptr b -> Int -> IO PipelineLayoutCreateFlags
forall b. Ptr b -> Int -> PipelineLayoutCreateFlags -> 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 PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> IO ()
$cpoke :: Ptr PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags -> IO ()
peek :: Ptr PipelineLayoutCreateFlags -> IO PipelineLayoutCreateFlags
$cpeek :: Ptr PipelineLayoutCreateFlags -> IO PipelineLayoutCreateFlags
pokeByteOff :: Ptr b -> Int -> PipelineLayoutCreateFlags -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> PipelineLayoutCreateFlags -> IO ()
peekByteOff :: Ptr b -> Int -> IO PipelineLayoutCreateFlags
$cpeekByteOff :: forall b. Ptr b -> Int -> IO PipelineLayoutCreateFlags
pokeElemOff :: Ptr PipelineLayoutCreateFlags
-> Int -> PipelineLayoutCreateFlags -> IO ()
$cpokeElemOff :: Ptr PipelineLayoutCreateFlags
-> Int -> PipelineLayoutCreateFlags -> IO ()
peekElemOff :: Ptr PipelineLayoutCreateFlags
-> Int -> IO PipelineLayoutCreateFlags
$cpeekElemOff :: Ptr PipelineLayoutCreateFlags
-> Int -> IO PipelineLayoutCreateFlags
alignment :: PipelineLayoutCreateFlags -> Int
$calignment :: PipelineLayoutCreateFlags -> Int
sizeOf :: PipelineLayoutCreateFlags -> Int
$csizeOf :: PipelineLayoutCreateFlags -> Int
Storable, PipelineLayoutCreateFlags
PipelineLayoutCreateFlags -> Zero PipelineLayoutCreateFlags
forall a. a -> Zero a
zero :: PipelineLayoutCreateFlags
$czero :: PipelineLayoutCreateFlags
Zero, Eq PipelineLayoutCreateFlags
PipelineLayoutCreateFlags
Eq PipelineLayoutCreateFlags =>
(PipelineLayoutCreateFlags
 -> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags
    -> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags
    -> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> PipelineLayoutCreateFlags
-> (Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> Bool)
-> (PipelineLayoutCreateFlags -> Maybe Int)
-> (PipelineLayoutCreateFlags -> Int)
-> (PipelineLayoutCreateFlags -> Bool)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags)
-> (PipelineLayoutCreateFlags -> Int)
-> Bits PipelineLayoutCreateFlags
Int -> PipelineLayoutCreateFlags
PipelineLayoutCreateFlags -> Bool
PipelineLayoutCreateFlags -> Int
PipelineLayoutCreateFlags -> Maybe Int
PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
PipelineLayoutCreateFlags -> Int -> Bool
PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
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 :: PipelineLayoutCreateFlags -> Int
$cpopCount :: PipelineLayoutCreateFlags -> Int
rotateR :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$crotateR :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
rotateL :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$crotateL :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
unsafeShiftR :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$cunsafeShiftR :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
shiftR :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$cshiftR :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
unsafeShiftL :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$cunsafeShiftL :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
shiftL :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$cshiftL :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
isSigned :: PipelineLayoutCreateFlags -> Bool
$cisSigned :: PipelineLayoutCreateFlags -> Bool
bitSize :: PipelineLayoutCreateFlags -> Int
$cbitSize :: PipelineLayoutCreateFlags -> Int
bitSizeMaybe :: PipelineLayoutCreateFlags -> Maybe Int
$cbitSizeMaybe :: PipelineLayoutCreateFlags -> Maybe Int
testBit :: PipelineLayoutCreateFlags -> Int -> Bool
$ctestBit :: PipelineLayoutCreateFlags -> Int -> Bool
complementBit :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$ccomplementBit :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
clearBit :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$cclearBit :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
setBit :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$csetBit :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
bit :: Int -> PipelineLayoutCreateFlags
$cbit :: Int -> PipelineLayoutCreateFlags
zeroBits :: PipelineLayoutCreateFlags
$czeroBits :: PipelineLayoutCreateFlags
rotate :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$crotate :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
shift :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
$cshift :: PipelineLayoutCreateFlags -> Int -> PipelineLayoutCreateFlags
complement :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
$ccomplement :: PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
xor :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
$cxor :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
.|. :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
$c.|. :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
.&. :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
$c.&. :: PipelineLayoutCreateFlags
-> PipelineLayoutCreateFlags -> PipelineLayoutCreateFlags
$cp1Bits :: Eq PipelineLayoutCreateFlags
Bits)



instance Show PipelineLayoutCreateFlags where
  showsPrec :: Int -> PipelineLayoutCreateFlags -> ShowS
showsPrec p :: Int
p = \case
    PipelineLayoutCreateFlags x :: Flags
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "PipelineLayoutCreateFlags 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 PipelineLayoutCreateFlags where
  readPrec :: ReadPrec PipelineLayoutCreateFlags
readPrec = ReadPrec PipelineLayoutCreateFlags
-> ReadPrec PipelineLayoutCreateFlags
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec PipelineLayoutCreateFlags)]
-> ReadPrec PipelineLayoutCreateFlags
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose []
                     ReadPrec PipelineLayoutCreateFlags
-> ReadPrec PipelineLayoutCreateFlags
-> ReadPrec PipelineLayoutCreateFlags
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec PipelineLayoutCreateFlags
-> ReadPrec PipelineLayoutCreateFlags
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "PipelineLayoutCreateFlags")
                       Flags
v <- ReadPrec Flags -> ReadPrec Flags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Flags
forall a. Read a => ReadPrec a
readPrec
                       PipelineLayoutCreateFlags -> ReadPrec PipelineLayoutCreateFlags
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> PipelineLayoutCreateFlags
PipelineLayoutCreateFlags Flags
v)))