{-# OPTIONS_HADDOCK ignore-exports#-}
{-# LANGUAGE DataKinds                  #-}
{-# LANGUAGE DeriveDataTypeable         #-}
{-# LANGUAGE DeriveGeneric              #-}
{-# LANGUAGE FlexibleInstances          #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE KindSignatures             #-}
{-# LANGUAGE PatternSynonyms            #-}
{-# LANGUAGE StandaloneDeriving         #-}
{-# LANGUAGE Strict                     #-}
{-# LANGUAGE TypeSynonymInstances       #-}
module Graphics.Vulkan.Types.Enum.CullModeFlags
       (VkCullModeBitmask(VkCullModeBitmask, VkCullModeFlags,
                          VkCullModeFlagBits, VK_CULL_MODE_NONE, VK_CULL_MODE_FRONT_BIT,
                          VK_CULL_MODE_BACK_BIT, VK_CULL_MODE_FRONT_AND_BACK),
        VkCullModeFlags, VkCullModeFlagBits)
       where
import           Data.Bits                       (Bits, FiniteBits)
import           Data.Data                       (Data)
import           Foreign.Storable                (Storable)
import           GHC.Generics                    (Generic)
import           GHC.Read                        (choose, expectP)
import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
import           Text.Read                       (Read (..), parens)
import           Text.Read.Lex                   (Lexeme (..))

newtype VkCullModeBitmask (a ::
                             FlagType) = VkCullModeBitmask VkFlags
                                           deriving (VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
(VkCullModeBitmask a -> VkCullModeBitmask a -> Bool)
-> (VkCullModeBitmask a -> VkCullModeBitmask a -> Bool)
-> Eq (VkCullModeBitmask a)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
/= :: VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
$c/= :: forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
== :: VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
$c== :: forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
Eq, Eq (VkCullModeBitmask a)
Eq (VkCullModeBitmask a)
-> (VkCullModeBitmask a -> VkCullModeBitmask a -> Ordering)
-> (VkCullModeBitmask a -> VkCullModeBitmask a -> Bool)
-> (VkCullModeBitmask a -> VkCullModeBitmask a -> Bool)
-> (VkCullModeBitmask a -> VkCullModeBitmask a -> Bool)
-> (VkCullModeBitmask a -> VkCullModeBitmask a -> Bool)
-> (VkCullModeBitmask a
    -> VkCullModeBitmask a -> VkCullModeBitmask a)
-> (VkCullModeBitmask a
    -> VkCullModeBitmask a -> VkCullModeBitmask a)
-> Ord (VkCullModeBitmask a)
VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
VkCullModeBitmask a -> VkCullModeBitmask a -> Ordering
VkCullModeBitmask a -> VkCullModeBitmask a -> VkCullModeBitmask a
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
forall (a :: FlagType). Eq (VkCullModeBitmask a)
forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Ordering
forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> VkCullModeBitmask a
min :: VkCullModeBitmask a -> VkCullModeBitmask a -> VkCullModeBitmask a
$cmin :: forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> VkCullModeBitmask a
max :: VkCullModeBitmask a -> VkCullModeBitmask a -> VkCullModeBitmask a
$cmax :: forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> VkCullModeBitmask a
>= :: VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
$c>= :: forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
> :: VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
$c> :: forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
<= :: VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
$c<= :: forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
< :: VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
$c< :: forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Bool
compare :: VkCullModeBitmask a -> VkCullModeBitmask a -> Ordering
$ccompare :: forall (a :: FlagType).
VkCullModeBitmask a -> VkCullModeBitmask a -> Ordering
$cp1Ord :: forall (a :: FlagType). Eq (VkCullModeBitmask a)
Ord, Ptr b -> Int -> IO (VkCullModeBitmask a)
Ptr b -> Int -> VkCullModeBitmask a -> IO ()
Ptr (VkCullModeBitmask a) -> IO (VkCullModeBitmask a)
Ptr (VkCullModeBitmask a) -> Int -> IO (VkCullModeBitmask a)
Ptr (VkCullModeBitmask a) -> Int -> VkCullModeBitmask a -> IO ()
Ptr (VkCullModeBitmask a) -> VkCullModeBitmask a -> IO ()
VkCullModeBitmask a -> Int
(VkCullModeBitmask a -> Int)
-> (VkCullModeBitmask a -> Int)
-> (Ptr (VkCullModeBitmask a) -> Int -> IO (VkCullModeBitmask a))
-> (Ptr (VkCullModeBitmask a)
    -> Int -> VkCullModeBitmask a -> IO ())
-> (forall b. Ptr b -> Int -> IO (VkCullModeBitmask a))
-> (forall b. Ptr b -> Int -> VkCullModeBitmask a -> IO ())
-> (Ptr (VkCullModeBitmask a) -> IO (VkCullModeBitmask a))
-> (Ptr (VkCullModeBitmask a) -> VkCullModeBitmask a -> IO ())
-> Storable (VkCullModeBitmask a)
forall b. Ptr b -> Int -> IO (VkCullModeBitmask a)
forall b. Ptr b -> Int -> VkCullModeBitmask a -> 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
forall (a :: FlagType).
Ptr (VkCullModeBitmask a) -> IO (VkCullModeBitmask a)
forall (a :: FlagType).
Ptr (VkCullModeBitmask a) -> Int -> IO (VkCullModeBitmask a)
forall (a :: FlagType).
Ptr (VkCullModeBitmask a) -> Int -> VkCullModeBitmask a -> IO ()
forall (a :: FlagType).
Ptr (VkCullModeBitmask a) -> VkCullModeBitmask a -> IO ()
forall (a :: FlagType). VkCullModeBitmask a -> Int
forall (a :: FlagType) b. Ptr b -> Int -> IO (VkCullModeBitmask a)
forall (a :: FlagType) b.
Ptr b -> Int -> VkCullModeBitmask a -> IO ()
poke :: Ptr (VkCullModeBitmask a) -> VkCullModeBitmask a -> IO ()
$cpoke :: forall (a :: FlagType).
Ptr (VkCullModeBitmask a) -> VkCullModeBitmask a -> IO ()
peek :: Ptr (VkCullModeBitmask a) -> IO (VkCullModeBitmask a)
$cpeek :: forall (a :: FlagType).
Ptr (VkCullModeBitmask a) -> IO (VkCullModeBitmask a)
pokeByteOff :: Ptr b -> Int -> VkCullModeBitmask a -> IO ()
$cpokeByteOff :: forall (a :: FlagType) b.
Ptr b -> Int -> VkCullModeBitmask a -> IO ()
peekByteOff :: Ptr b -> Int -> IO (VkCullModeBitmask a)
$cpeekByteOff :: forall (a :: FlagType) b. Ptr b -> Int -> IO (VkCullModeBitmask a)
pokeElemOff :: Ptr (VkCullModeBitmask a) -> Int -> VkCullModeBitmask a -> IO ()
$cpokeElemOff :: forall (a :: FlagType).
Ptr (VkCullModeBitmask a) -> Int -> VkCullModeBitmask a -> IO ()
peekElemOff :: Ptr (VkCullModeBitmask a) -> Int -> IO (VkCullModeBitmask a)
$cpeekElemOff :: forall (a :: FlagType).
Ptr (VkCullModeBitmask a) -> Int -> IO (VkCullModeBitmask a)
alignment :: VkCullModeBitmask a -> Int
$calignment :: forall (a :: FlagType). VkCullModeBitmask a -> Int
sizeOf :: VkCullModeBitmask a -> Int
$csizeOf :: forall (a :: FlagType). VkCullModeBitmask a -> Int
Storable, Typeable (VkCullModeBitmask a)
DataType
Constr
Typeable (VkCullModeBitmask a)
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> VkCullModeBitmask a
    -> c (VkCullModeBitmask a))
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c (VkCullModeBitmask a))
-> (VkCullModeBitmask a -> Constr)
-> (VkCullModeBitmask a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c (VkCullModeBitmask a)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c (VkCullModeBitmask a)))
-> ((forall b. Data b => b -> b)
    -> VkCullModeBitmask a -> VkCullModeBitmask a)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> VkCullModeBitmask a -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> VkCullModeBitmask a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> VkCullModeBitmask a -> m (VkCullModeBitmask a))
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> VkCullModeBitmask a -> m (VkCullModeBitmask a))
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> VkCullModeBitmask a -> m (VkCullModeBitmask a))
-> Data (VkCullModeBitmask a)
VkCullModeBitmask a -> DataType
VkCullModeBitmask a -> Constr
(forall b. Data b => b -> b)
-> VkCullModeBitmask a -> VkCullModeBitmask a
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> VkCullModeBitmask a
-> c (VkCullModeBitmask a)
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (VkCullModeBitmask a)
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> VkCullModeBitmask a -> u
forall u.
(forall d. Data d => d -> u) -> VkCullModeBitmask a -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r
forall (a :: FlagType).
Typeable a =>
Typeable (VkCullModeBitmask a)
forall (a :: FlagType).
Typeable a =>
VkCullModeBitmask a -> DataType
forall (a :: FlagType). Typeable a => VkCullModeBitmask a -> Constr
forall (a :: FlagType).
Typeable a =>
(forall b. Data b => b -> b)
-> VkCullModeBitmask a -> VkCullModeBitmask a
forall (a :: FlagType) u.
Typeable a =>
Int -> (forall d. Data d => d -> u) -> VkCullModeBitmask a -> u
forall (a :: FlagType) u.
Typeable a =>
(forall d. Data d => d -> u) -> VkCullModeBitmask a -> [u]
forall (a :: FlagType) r r'.
Typeable a =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r
forall (a :: FlagType) r r'.
Typeable a =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r
forall (a :: FlagType) (m :: * -> *).
(Typeable a, Monad m) =>
(forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
forall (a :: FlagType) (m :: * -> *).
(Typeable a, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
forall (a :: FlagType) (c :: * -> *).
Typeable a =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (VkCullModeBitmask a)
forall (a :: FlagType) (c :: * -> *).
Typeable a =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> VkCullModeBitmask a
-> c (VkCullModeBitmask a)
forall (a :: FlagType) (t :: * -> *) (c :: * -> *).
(Typeable a, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (VkCullModeBitmask a))
forall (a :: FlagType) (t :: * -> * -> *) (c :: * -> *).
(Typeable a, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (VkCullModeBitmask a))
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (VkCullModeBitmask a)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> VkCullModeBitmask a
-> c (VkCullModeBitmask a)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (VkCullModeBitmask a))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (VkCullModeBitmask a))
$cVkCullModeBitmask :: Constr
$tVkCullModeBitmask :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
$cgmapMo :: forall (a :: FlagType) (m :: * -> *).
(Typeable a, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
gmapMp :: (forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
$cgmapMp :: forall (a :: FlagType) (m :: * -> *).
(Typeable a, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
gmapM :: (forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
$cgmapM :: forall (a :: FlagType) (m :: * -> *).
(Typeable a, Monad m) =>
(forall d. Data d => d -> m d)
-> VkCullModeBitmask a -> m (VkCullModeBitmask a)
gmapQi :: Int -> (forall d. Data d => d -> u) -> VkCullModeBitmask a -> u
$cgmapQi :: forall (a :: FlagType) u.
Typeable a =>
Int -> (forall d. Data d => d -> u) -> VkCullModeBitmask a -> u
gmapQ :: (forall d. Data d => d -> u) -> VkCullModeBitmask a -> [u]
$cgmapQ :: forall (a :: FlagType) u.
Typeable a =>
(forall d. Data d => d -> u) -> VkCullModeBitmask a -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r
$cgmapQr :: forall (a :: FlagType) r r'.
Typeable a =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r
$cgmapQl :: forall (a :: FlagType) r r'.
Typeable a =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> VkCullModeBitmask a -> r
gmapT :: (forall b. Data b => b -> b)
-> VkCullModeBitmask a -> VkCullModeBitmask a
$cgmapT :: forall (a :: FlagType).
Typeable a =>
(forall b. Data b => b -> b)
-> VkCullModeBitmask a -> VkCullModeBitmask a
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (VkCullModeBitmask a))
$cdataCast2 :: forall (a :: FlagType) (t :: * -> * -> *) (c :: * -> *).
(Typeable a, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (VkCullModeBitmask a))
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c (VkCullModeBitmask a))
$cdataCast1 :: forall (a :: FlagType) (t :: * -> *) (c :: * -> *).
(Typeable a, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (VkCullModeBitmask a))
dataTypeOf :: VkCullModeBitmask a -> DataType
$cdataTypeOf :: forall (a :: FlagType).
Typeable a =>
VkCullModeBitmask a -> DataType
toConstr :: VkCullModeBitmask a -> Constr
$ctoConstr :: forall (a :: FlagType). Typeable a => VkCullModeBitmask a -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (VkCullModeBitmask a)
$cgunfold :: forall (a :: FlagType) (c :: * -> *).
Typeable a =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (VkCullModeBitmask a)
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> VkCullModeBitmask a
-> c (VkCullModeBitmask a)
$cgfoldl :: forall (a :: FlagType) (c :: * -> *).
Typeable a =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> VkCullModeBitmask a
-> c (VkCullModeBitmask a)
$cp1Data :: forall (a :: FlagType).
Typeable a =>
Typeable (VkCullModeBitmask a)
Data, (forall x. VkCullModeBitmask a -> Rep (VkCullModeBitmask a) x)
-> (forall x. Rep (VkCullModeBitmask a) x -> VkCullModeBitmask a)
-> Generic (VkCullModeBitmask a)
forall x. Rep (VkCullModeBitmask a) x -> VkCullModeBitmask a
forall x. VkCullModeBitmask a -> Rep (VkCullModeBitmask a) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (a :: FlagType) x.
Rep (VkCullModeBitmask a) x -> VkCullModeBitmask a
forall (a :: FlagType) x.
VkCullModeBitmask a -> Rep (VkCullModeBitmask a) x
$cto :: forall (a :: FlagType) x.
Rep (VkCullModeBitmask a) x -> VkCullModeBitmask a
$cfrom :: forall (a :: FlagType) x.
VkCullModeBitmask a -> Rep (VkCullModeBitmask a) x
Generic)

type VkCullModeFlags = VkCullModeBitmask FlagMask

type VkCullModeFlagBits = VkCullModeBitmask FlagBit

pattern VkCullModeFlagBits :: VkFlags -> VkCullModeBitmask FlagBit

pattern $bVkCullModeFlagBits :: VkFlags -> VkCullModeBitmask FlagBit
$mVkCullModeFlagBits :: forall r.
VkCullModeBitmask FlagBit -> (VkFlags -> r) -> (Void# -> r) -> r
VkCullModeFlagBits n = VkCullModeBitmask n

pattern VkCullModeFlags :: VkFlags -> VkCullModeBitmask FlagMask

pattern $bVkCullModeFlags :: VkFlags -> VkCullModeBitmask FlagMask
$mVkCullModeFlags :: forall r.
VkCullModeBitmask FlagMask -> (VkFlags -> r) -> (Void# -> r) -> r
VkCullModeFlags n = VkCullModeBitmask n

deriving instance Bits (VkCullModeBitmask FlagMask)

deriving instance FiniteBits (VkCullModeBitmask FlagMask)

deriving instance Integral (VkCullModeBitmask FlagMask)

deriving instance Num (VkCullModeBitmask FlagMask)

deriving instance Bounded (VkCullModeBitmask FlagMask)

deriving instance Enum (VkCullModeBitmask FlagMask)

deriving instance Real (VkCullModeBitmask FlagMask)

instance Show (VkCullModeBitmask a) where
        showsPrec :: Int -> VkCullModeBitmask a -> ShowS
showsPrec Int
_ VkCullModeBitmask a
VK_CULL_MODE_NONE = String -> ShowS
showString String
"VK_CULL_MODE_NONE"
        showsPrec Int
_ VkCullModeBitmask a
VK_CULL_MODE_FRONT_BIT
          = String -> ShowS
showString String
"VK_CULL_MODE_FRONT_BIT"
        showsPrec Int
_ VkCullModeBitmask a
VK_CULL_MODE_BACK_BIT
          = String -> ShowS
showString String
"VK_CULL_MODE_BACK_BIT"
        showsPrec Int
_ VkCullModeBitmask a
VK_CULL_MODE_FRONT_AND_BACK
          = String -> ShowS
showString String
"VK_CULL_MODE_FRONT_AND_BACK"
        showsPrec Int
p (VkCullModeBitmask VkFlags
x)
          = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
              (String -> ShowS
showString String
"VkCullModeBitmask " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> VkFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 VkFlags
x)

instance Read (VkCullModeBitmask a) where
        readPrec :: ReadPrec (VkCullModeBitmask a)
readPrec
          = ReadPrec (VkCullModeBitmask a) -> ReadPrec (VkCullModeBitmask a)
forall a. ReadPrec a -> ReadPrec a
parens
              ([(String, ReadPrec (VkCullModeBitmask a))]
-> ReadPrec (VkCullModeBitmask a)
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
                 [(String
"VK_CULL_MODE_NONE", VkCullModeBitmask a -> ReadPrec (VkCullModeBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCullModeBitmask a
forall (a :: FlagType). VkCullModeBitmask a
VK_CULL_MODE_NONE),
                  (String
"VK_CULL_MODE_FRONT_BIT", VkCullModeBitmask a -> ReadPrec (VkCullModeBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCullModeBitmask a
forall (a :: FlagType). VkCullModeBitmask a
VK_CULL_MODE_FRONT_BIT),
                  (String
"VK_CULL_MODE_BACK_BIT", VkCullModeBitmask a -> ReadPrec (VkCullModeBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCullModeBitmask a
forall (a :: FlagType). VkCullModeBitmask a
VK_CULL_MODE_BACK_BIT),
                  (String
"VK_CULL_MODE_FRONT_AND_BACK", VkCullModeBitmask a -> ReadPrec (VkCullModeBitmask a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkCullModeBitmask a
forall (a :: FlagType). VkCullModeBitmask a
VK_CULL_MODE_FRONT_AND_BACK)]
                 ReadPrec (VkCullModeBitmask a)
-> ReadPrec (VkCullModeBitmask a) -> ReadPrec (VkCullModeBitmask a)
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                 Int
-> ReadPrec (VkCullModeBitmask a) -> ReadPrec (VkCullModeBitmask a)
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
                   (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkCullModeBitmask") ReadPrec ()
-> ReadPrec (VkCullModeBitmask a) -> ReadPrec (VkCullModeBitmask a)
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                      (VkFlags -> VkCullModeBitmask a
forall (a :: FlagType). VkFlags -> VkCullModeBitmask a
VkCullModeBitmask (VkFlags -> VkCullModeBitmask a)
-> ReadPrec VkFlags -> ReadPrec (VkCullModeBitmask a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec VkFlags -> ReadPrec VkFlags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec VkFlags
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_CULL_MODE_NONE :: VkCullModeBitmask a

pattern $bVK_CULL_MODE_NONE :: VkCullModeBitmask a
$mVK_CULL_MODE_NONE :: forall r (a :: FlagType).
VkCullModeBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_CULL_MODE_NONE = VkCullModeBitmask 0

-- | bitpos = @0@
pattern VK_CULL_MODE_FRONT_BIT :: VkCullModeBitmask a

pattern $bVK_CULL_MODE_FRONT_BIT :: VkCullModeBitmask a
$mVK_CULL_MODE_FRONT_BIT :: forall r (a :: FlagType).
VkCullModeBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_CULL_MODE_FRONT_BIT = VkCullModeBitmask 1

-- | bitpos = @1@
pattern VK_CULL_MODE_BACK_BIT :: VkCullModeBitmask a

pattern $bVK_CULL_MODE_BACK_BIT :: VkCullModeBitmask a
$mVK_CULL_MODE_BACK_BIT :: forall r (a :: FlagType).
VkCullModeBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_CULL_MODE_BACK_BIT = VkCullModeBitmask 2

pattern VK_CULL_MODE_FRONT_AND_BACK :: VkCullModeBitmask a

pattern $bVK_CULL_MODE_FRONT_AND_BACK :: VkCullModeBitmask a
$mVK_CULL_MODE_FRONT_AND_BACK :: forall r (a :: FlagType).
VkCullModeBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_CULL_MODE_FRONT_AND_BACK = VkCullModeBitmask 3