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



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