{-# language CPP #-}
module Vulkan.Core10.Enums.CommandPoolResetFlagBits  ( CommandPoolResetFlagBits( COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
                                                                               , ..
                                                                               )
                                                     , CommandPoolResetFlags
                                                     ) 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.FundamentalTypes (Flags)
import Vulkan.Zero (Zero)
-- | VkCommandPoolResetFlagBits - Bitmask controlling behavior of a command
-- pool reset
--
-- = See Also
--
-- 'CommandPoolResetFlags'
newtype CommandPoolResetFlagBits = CommandPoolResetFlagBits Flags
  deriving newtype (CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
(CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool)
-> (CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool)
-> Eq CommandPoolResetFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
$c/= :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
== :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
$c== :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
Eq, Eq CommandPoolResetFlagBits
Eq CommandPoolResetFlagBits =>
(CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Ordering)
-> (CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool)
-> (CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool)
-> (CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool)
-> (CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool)
-> (CommandPoolResetFlagBits
    -> CommandPoolResetFlagBits -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits
    -> CommandPoolResetFlagBits -> CommandPoolResetFlagBits)
-> Ord CommandPoolResetFlagBits
CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Ordering
CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
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 :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
$cmin :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
max :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
$cmax :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
>= :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
$c>= :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
> :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
$c> :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
<= :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
$c<= :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
< :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
$c< :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Bool
compare :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Ordering
$ccompare :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> Ordering
$cp1Ord :: Eq CommandPoolResetFlagBits
Ord, Ptr b -> Int -> IO CommandPoolResetFlagBits
Ptr b -> Int -> CommandPoolResetFlagBits -> IO ()
Ptr CommandPoolResetFlagBits -> IO CommandPoolResetFlagBits
Ptr CommandPoolResetFlagBits -> Int -> IO CommandPoolResetFlagBits
Ptr CommandPoolResetFlagBits
-> Int -> CommandPoolResetFlagBits -> IO ()
Ptr CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> IO ()
CommandPoolResetFlagBits -> Int
(CommandPoolResetFlagBits -> Int)
-> (CommandPoolResetFlagBits -> Int)
-> (Ptr CommandPoolResetFlagBits
    -> Int -> IO CommandPoolResetFlagBits)
-> (Ptr CommandPoolResetFlagBits
    -> Int -> CommandPoolResetFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO CommandPoolResetFlagBits)
-> (forall b. Ptr b -> Int -> CommandPoolResetFlagBits -> IO ())
-> (Ptr CommandPoolResetFlagBits -> IO CommandPoolResetFlagBits)
-> (Ptr CommandPoolResetFlagBits
    -> CommandPoolResetFlagBits -> IO ())
-> Storable CommandPoolResetFlagBits
forall b. Ptr b -> Int -> IO CommandPoolResetFlagBits
forall b. Ptr b -> Int -> CommandPoolResetFlagBits -> 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 CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> IO ()
$cpoke :: Ptr CommandPoolResetFlagBits -> CommandPoolResetFlagBits -> IO ()
peek :: Ptr CommandPoolResetFlagBits -> IO CommandPoolResetFlagBits
$cpeek :: Ptr CommandPoolResetFlagBits -> IO CommandPoolResetFlagBits
pokeByteOff :: Ptr b -> Int -> CommandPoolResetFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> CommandPoolResetFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO CommandPoolResetFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO CommandPoolResetFlagBits
pokeElemOff :: Ptr CommandPoolResetFlagBits
-> Int -> CommandPoolResetFlagBits -> IO ()
$cpokeElemOff :: Ptr CommandPoolResetFlagBits
-> Int -> CommandPoolResetFlagBits -> IO ()
peekElemOff :: Ptr CommandPoolResetFlagBits -> Int -> IO CommandPoolResetFlagBits
$cpeekElemOff :: Ptr CommandPoolResetFlagBits -> Int -> IO CommandPoolResetFlagBits
alignment :: CommandPoolResetFlagBits -> Int
$calignment :: CommandPoolResetFlagBits -> Int
sizeOf :: CommandPoolResetFlagBits -> Int
$csizeOf :: CommandPoolResetFlagBits -> Int
Storable, CommandPoolResetFlagBits
CommandPoolResetFlagBits -> Zero CommandPoolResetFlagBits
forall a. a -> Zero a
zero :: CommandPoolResetFlagBits
$czero :: CommandPoolResetFlagBits
Zero, Eq CommandPoolResetFlagBits
CommandPoolResetFlagBits
Eq CommandPoolResetFlagBits =>
(CommandPoolResetFlagBits
 -> CommandPoolResetFlagBits -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits
    -> CommandPoolResetFlagBits -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits
    -> CommandPoolResetFlagBits -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> CommandPoolResetFlagBits
-> (Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> Bool)
-> (CommandPoolResetFlagBits -> Maybe Int)
-> (CommandPoolResetFlagBits -> Int)
-> (CommandPoolResetFlagBits -> Bool)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits)
-> (CommandPoolResetFlagBits -> Int)
-> Bits CommandPoolResetFlagBits
Int -> CommandPoolResetFlagBits
CommandPoolResetFlagBits -> Bool
CommandPoolResetFlagBits -> Int
CommandPoolResetFlagBits -> Maybe Int
CommandPoolResetFlagBits -> CommandPoolResetFlagBits
CommandPoolResetFlagBits -> Int -> Bool
CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
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 :: CommandPoolResetFlagBits -> Int
$cpopCount :: CommandPoolResetFlagBits -> Int
rotateR :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$crotateR :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
rotateL :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$crotateL :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
unsafeShiftR :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$cunsafeShiftR :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
shiftR :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$cshiftR :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
unsafeShiftL :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$cunsafeShiftL :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
shiftL :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$cshiftL :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
isSigned :: CommandPoolResetFlagBits -> Bool
$cisSigned :: CommandPoolResetFlagBits -> Bool
bitSize :: CommandPoolResetFlagBits -> Int
$cbitSize :: CommandPoolResetFlagBits -> Int
bitSizeMaybe :: CommandPoolResetFlagBits -> Maybe Int
$cbitSizeMaybe :: CommandPoolResetFlagBits -> Maybe Int
testBit :: CommandPoolResetFlagBits -> Int -> Bool
$ctestBit :: CommandPoolResetFlagBits -> Int -> Bool
complementBit :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$ccomplementBit :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
clearBit :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$cclearBit :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
setBit :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$csetBit :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
bit :: Int -> CommandPoolResetFlagBits
$cbit :: Int -> CommandPoolResetFlagBits
zeroBits :: CommandPoolResetFlagBits
$czeroBits :: CommandPoolResetFlagBits
rotate :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$crotate :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
shift :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
$cshift :: CommandPoolResetFlagBits -> Int -> CommandPoolResetFlagBits
complement :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits
$ccomplement :: CommandPoolResetFlagBits -> CommandPoolResetFlagBits
xor :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
$cxor :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
.|. :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
$c.|. :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
.&. :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
$c.&. :: CommandPoolResetFlagBits
-> CommandPoolResetFlagBits -> CommandPoolResetFlagBits
$cp1Bits :: Eq CommandPoolResetFlagBits
Bits)

-- | 'COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT' specifies that resetting a
-- command pool recycles all of the resources from the command pool back to
-- the system.
pattern $bCOMMAND_POOL_RESET_RELEASE_RESOURCES_BIT :: CommandPoolResetFlagBits
$mCOMMAND_POOL_RESET_RELEASE_RESOURCES_BIT :: forall r.
CommandPoolResetFlagBits -> (Void# -> r) -> (Void# -> r) -> r
COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = CommandPoolResetFlagBits 0x00000001

type CommandPoolResetFlags = CommandPoolResetFlagBits

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