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

conNameDescriptorUpdateTemplateCreateFlags :: String
conNameDescriptorUpdateTemplateCreateFlags :: String
conNameDescriptorUpdateTemplateCreateFlags = String
"DescriptorUpdateTemplateCreateFlags"

enumPrefixDescriptorUpdateTemplateCreateFlags :: String
enumPrefixDescriptorUpdateTemplateCreateFlags :: String
enumPrefixDescriptorUpdateTemplateCreateFlags = String
""

showTableDescriptorUpdateTemplateCreateFlags :: [(DescriptorUpdateTemplateCreateFlags, String)]
showTableDescriptorUpdateTemplateCreateFlags :: [(DescriptorUpdateTemplateCreateFlags, String)]
showTableDescriptorUpdateTemplateCreateFlags = []

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