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



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