{-# OPTIONS_HADDOCK ignore-exports#-}
{-# LANGUAGE DataKinds                  #-}
{-# LANGUAGE DeriveDataTypeable         #-}
{-# LANGUAGE DeriveGeneric              #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms            #-}
{-# LANGUAGE Strict                     #-}
module Graphics.Vulkan.Types.Enum.PrimitiveTopology
       (VkPrimitiveTopology(VkPrimitiveTopology,
                            VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
                            VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
                            VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
                            VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
                            VK_PRIMITIVE_TOPOLOGY_PATCH_LIST))
       where
import           Data.Data                       (Data)
import           Foreign.Storable                (Storable)
import           GHC.Generics                    (Generic)
import           GHC.Read                        (choose, expectP)
import           Graphics.Vulkan.Marshal         (Int32)
import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
import           Text.Read                       (Read (..), parens)
import           Text.Read.Lex                   (Lexeme (..))

-- | type = @enum@
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPrimitiveTopology VkPrimitiveTopology registry at www.khronos.org>
newtype VkPrimitiveTopology = VkPrimitiveTopology Int32
                                deriving (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
(VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> Eq VkPrimitiveTopology
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c/= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
== :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c== :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
Eq, Eq VkPrimitiveTopology
Eq VkPrimitiveTopology
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Ordering)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology -> VkPrimitiveTopology -> Bool)
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> VkPrimitiveTopology)
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> VkPrimitiveTopology)
-> Ord VkPrimitiveTopology
VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
VkPrimitiveTopology -> VkPrimitiveTopology -> Ordering
VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
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 :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
$cmin :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
max :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
$cmax :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
>= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c>= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
> :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c> :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
<= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c<= :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
< :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
$c< :: VkPrimitiveTopology -> VkPrimitiveTopology -> Bool
compare :: VkPrimitiveTopology -> VkPrimitiveTopology -> Ordering
$ccompare :: VkPrimitiveTopology -> VkPrimitiveTopology -> Ordering
$cp1Ord :: Eq VkPrimitiveTopology
Ord, Integer -> VkPrimitiveTopology
VkPrimitiveTopology -> VkPrimitiveTopology
VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
(VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology)
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> VkPrimitiveTopology)
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> VkPrimitiveTopology)
-> (VkPrimitiveTopology -> VkPrimitiveTopology)
-> (VkPrimitiveTopology -> VkPrimitiveTopology)
-> (VkPrimitiveTopology -> VkPrimitiveTopology)
-> (Integer -> VkPrimitiveTopology)
-> Num VkPrimitiveTopology
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> VkPrimitiveTopology
$cfromInteger :: Integer -> VkPrimitiveTopology
signum :: VkPrimitiveTopology -> VkPrimitiveTopology
$csignum :: VkPrimitiveTopology -> VkPrimitiveTopology
abs :: VkPrimitiveTopology -> VkPrimitiveTopology
$cabs :: VkPrimitiveTopology -> VkPrimitiveTopology
negate :: VkPrimitiveTopology -> VkPrimitiveTopology
$cnegate :: VkPrimitiveTopology -> VkPrimitiveTopology
* :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
$c* :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
- :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
$c- :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
+ :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
$c+ :: VkPrimitiveTopology -> VkPrimitiveTopology -> VkPrimitiveTopology
Num, VkPrimitiveTopology
VkPrimitiveTopology
-> VkPrimitiveTopology -> Bounded VkPrimitiveTopology
forall a. a -> a -> Bounded a
maxBound :: VkPrimitiveTopology
$cmaxBound :: VkPrimitiveTopology
minBound :: VkPrimitiveTopology
$cminBound :: VkPrimitiveTopology
Bounded, Ptr b -> Int -> IO VkPrimitiveTopology
Ptr b -> Int -> VkPrimitiveTopology -> IO ()
Ptr VkPrimitiveTopology -> IO VkPrimitiveTopology
Ptr VkPrimitiveTopology -> Int -> IO VkPrimitiveTopology
Ptr VkPrimitiveTopology -> Int -> VkPrimitiveTopology -> IO ()
Ptr VkPrimitiveTopology -> VkPrimitiveTopology -> IO ()
VkPrimitiveTopology -> Int
(VkPrimitiveTopology -> Int)
-> (VkPrimitiveTopology -> Int)
-> (Ptr VkPrimitiveTopology -> Int -> IO VkPrimitiveTopology)
-> (Ptr VkPrimitiveTopology -> Int -> VkPrimitiveTopology -> IO ())
-> (forall b. Ptr b -> Int -> IO VkPrimitiveTopology)
-> (forall b. Ptr b -> Int -> VkPrimitiveTopology -> IO ())
-> (Ptr VkPrimitiveTopology -> IO VkPrimitiveTopology)
-> (Ptr VkPrimitiveTopology -> VkPrimitiveTopology -> IO ())
-> Storable VkPrimitiveTopology
forall b. Ptr b -> Int -> IO VkPrimitiveTopology
forall b. Ptr b -> Int -> VkPrimitiveTopology -> 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 VkPrimitiveTopology -> VkPrimitiveTopology -> IO ()
$cpoke :: Ptr VkPrimitiveTopology -> VkPrimitiveTopology -> IO ()
peek :: Ptr VkPrimitiveTopology -> IO VkPrimitiveTopology
$cpeek :: Ptr VkPrimitiveTopology -> IO VkPrimitiveTopology
pokeByteOff :: Ptr b -> Int -> VkPrimitiveTopology -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> VkPrimitiveTopology -> IO ()
peekByteOff :: Ptr b -> Int -> IO VkPrimitiveTopology
$cpeekByteOff :: forall b. Ptr b -> Int -> IO VkPrimitiveTopology
pokeElemOff :: Ptr VkPrimitiveTopology -> Int -> VkPrimitiveTopology -> IO ()
$cpokeElemOff :: Ptr VkPrimitiveTopology -> Int -> VkPrimitiveTopology -> IO ()
peekElemOff :: Ptr VkPrimitiveTopology -> Int -> IO VkPrimitiveTopology
$cpeekElemOff :: Ptr VkPrimitiveTopology -> Int -> IO VkPrimitiveTopology
alignment :: VkPrimitiveTopology -> Int
$calignment :: VkPrimitiveTopology -> Int
sizeOf :: VkPrimitiveTopology -> Int
$csizeOf :: VkPrimitiveTopology -> Int
Storable, Int -> VkPrimitiveTopology
VkPrimitiveTopology -> Int
VkPrimitiveTopology -> [VkPrimitiveTopology]
VkPrimitiveTopology -> VkPrimitiveTopology
VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
VkPrimitiveTopology
-> VkPrimitiveTopology
-> VkPrimitiveTopology
-> [VkPrimitiveTopology]
(VkPrimitiveTopology -> VkPrimitiveTopology)
-> (VkPrimitiveTopology -> VkPrimitiveTopology)
-> (Int -> VkPrimitiveTopology)
-> (VkPrimitiveTopology -> Int)
-> (VkPrimitiveTopology -> [VkPrimitiveTopology])
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> [VkPrimitiveTopology])
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology -> [VkPrimitiveTopology])
-> (VkPrimitiveTopology
    -> VkPrimitiveTopology
    -> VkPrimitiveTopology
    -> [VkPrimitiveTopology])
-> Enum VkPrimitiveTopology
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: VkPrimitiveTopology
-> VkPrimitiveTopology
-> VkPrimitiveTopology
-> [VkPrimitiveTopology]
$cenumFromThenTo :: VkPrimitiveTopology
-> VkPrimitiveTopology
-> VkPrimitiveTopology
-> [VkPrimitiveTopology]
enumFromTo :: VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
$cenumFromTo :: VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
enumFromThen :: VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
$cenumFromThen :: VkPrimitiveTopology -> VkPrimitiveTopology -> [VkPrimitiveTopology]
enumFrom :: VkPrimitiveTopology -> [VkPrimitiveTopology]
$cenumFrom :: VkPrimitiveTopology -> [VkPrimitiveTopology]
fromEnum :: VkPrimitiveTopology -> Int
$cfromEnum :: VkPrimitiveTopology -> Int
toEnum :: Int -> VkPrimitiveTopology
$ctoEnum :: Int -> VkPrimitiveTopology
pred :: VkPrimitiveTopology -> VkPrimitiveTopology
$cpred :: VkPrimitiveTopology -> VkPrimitiveTopology
succ :: VkPrimitiveTopology -> VkPrimitiveTopology
$csucc :: VkPrimitiveTopology -> VkPrimitiveTopology
Enum, Typeable VkPrimitiveTopology
DataType
Constr
Typeable VkPrimitiveTopology
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> VkPrimitiveTopology
    -> c VkPrimitiveTopology)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c VkPrimitiveTopology)
-> (VkPrimitiveTopology -> Constr)
-> (VkPrimitiveTopology -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c VkPrimitiveTopology))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c VkPrimitiveTopology))
-> ((forall b. Data b => b -> b)
    -> VkPrimitiveTopology -> VkPrimitiveTopology)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> VkPrimitiveTopology -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> VkPrimitiveTopology -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> VkPrimitiveTopology -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> VkPrimitiveTopology -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> VkPrimitiveTopology -> m VkPrimitiveTopology)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> VkPrimitiveTopology -> m VkPrimitiveTopology)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> VkPrimitiveTopology -> m VkPrimitiveTopology)
-> Data VkPrimitiveTopology
VkPrimitiveTopology -> DataType
VkPrimitiveTopology -> Constr
(forall b. Data b => b -> b)
-> VkPrimitiveTopology -> VkPrimitiveTopology
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> VkPrimitiveTopology
-> c VkPrimitiveTopology
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c VkPrimitiveTopology
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) -> VkPrimitiveTopology -> u
forall u.
(forall d. Data d => d -> u) -> VkPrimitiveTopology -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> VkPrimitiveTopology -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> VkPrimitiveTopology -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> VkPrimitiveTopology -> m VkPrimitiveTopology
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> VkPrimitiveTopology -> m VkPrimitiveTopology
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c VkPrimitiveTopology
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> VkPrimitiveTopology
-> c VkPrimitiveTopology
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c VkPrimitiveTopology)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c VkPrimitiveTopology)
$cVkPrimitiveTopology :: Constr
$tVkPrimitiveTopology :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> VkPrimitiveTopology -> m VkPrimitiveTopology
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> VkPrimitiveTopology -> m VkPrimitiveTopology
gmapMp :: (forall d. Data d => d -> m d)
-> VkPrimitiveTopology -> m VkPrimitiveTopology
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> VkPrimitiveTopology -> m VkPrimitiveTopology
gmapM :: (forall d. Data d => d -> m d)
-> VkPrimitiveTopology -> m VkPrimitiveTopology
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> VkPrimitiveTopology -> m VkPrimitiveTopology
gmapQi :: Int -> (forall d. Data d => d -> u) -> VkPrimitiveTopology -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> VkPrimitiveTopology -> u
gmapQ :: (forall d. Data d => d -> u) -> VkPrimitiveTopology -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> VkPrimitiveTopology -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> VkPrimitiveTopology -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> VkPrimitiveTopology -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> VkPrimitiveTopology -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> VkPrimitiveTopology -> r
gmapT :: (forall b. Data b => b -> b)
-> VkPrimitiveTopology -> VkPrimitiveTopology
$cgmapT :: (forall b. Data b => b -> b)
-> VkPrimitiveTopology -> VkPrimitiveTopology
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c VkPrimitiveTopology)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c VkPrimitiveTopology)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c VkPrimitiveTopology)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c VkPrimitiveTopology)
dataTypeOf :: VkPrimitiveTopology -> DataType
$cdataTypeOf :: VkPrimitiveTopology -> DataType
toConstr :: VkPrimitiveTopology -> Constr
$ctoConstr :: VkPrimitiveTopology -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c VkPrimitiveTopology
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c VkPrimitiveTopology
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> VkPrimitiveTopology
-> c VkPrimitiveTopology
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> VkPrimitiveTopology
-> c VkPrimitiveTopology
$cp1Data :: Typeable VkPrimitiveTopology
Data, (forall x. VkPrimitiveTopology -> Rep VkPrimitiveTopology x)
-> (forall x. Rep VkPrimitiveTopology x -> VkPrimitiveTopology)
-> Generic VkPrimitiveTopology
forall x. Rep VkPrimitiveTopology x -> VkPrimitiveTopology
forall x. VkPrimitiveTopology -> Rep VkPrimitiveTopology x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep VkPrimitiveTopology x -> VkPrimitiveTopology
$cfrom :: forall x. VkPrimitiveTopology -> Rep VkPrimitiveTopology x
Generic)

instance Show VkPrimitiveTopology where
        showsPrec :: Int -> VkPrimitiveTopology -> ShowS
showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_POINT_LIST
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_POINT_LIST"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_LIST
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_LINE_LIST"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"
        showsPrec Int
_ VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
          = String -> ShowS
showString String
"VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"
        showsPrec Int
p (VkPrimitiveTopology Int32
x)
          = Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= Int
11)
              (String -> ShowS
showString String
"VkPrimitiveTopology " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11 Int32
x)

instance Read VkPrimitiveTopology where
        readPrec :: ReadPrec VkPrimitiveTopology
readPrec
          = ReadPrec VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall a. ReadPrec a -> ReadPrec a
parens
              ([(String, ReadPrec VkPrimitiveTopology)]
-> ReadPrec VkPrimitiveTopology
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose
                 [(String
"VK_PRIMITIVE_TOPOLOGY_POINT_LIST",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_POINT_LIST),
                  (String
"VK_PRIMITIVE_TOPOLOGY_LINE_LIST",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_LIST),
                  (String
"VK_PRIMITIVE_TOPOLOGY_LINE_STRIP",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP),
                  (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST),
                  (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP),
                  (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN),
                  (String
"VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY),
                  (String
"VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY),
                  (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY),
                  (String
"VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY),
                  (String
"VK_PRIMITIVE_TOPOLOGY_PATCH_LIST",
                   VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a. Applicative f => a -> f a
pure VkPrimitiveTopology
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST)]
                 ReadPrec VkPrimitiveTopology
-> ReadPrec VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                 Int -> ReadPrec VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall a. Int -> ReadPrec a -> ReadPrec a
prec Int
10
                   (Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident String
"VkPrimitiveTopology") ReadPrec ()
-> ReadPrec VkPrimitiveTopology -> ReadPrec VkPrimitiveTopology
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>>
                      (Int32 -> VkPrimitiveTopology
VkPrimitiveTopology (Int32 -> VkPrimitiveTopology)
-> ReadPrec Int32 -> ReadPrec VkPrimitiveTopology
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ReadPrec Int32 -> ReadPrec Int32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Int32
forall a. Read a => ReadPrec a
readPrec)))

pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_POINT_LIST :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_POINT_LIST :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_POINT_LIST = VkPrimitiveTopology 0

pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_LINE_LIST :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_LINE_LIST :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_LINE_LIST = VkPrimitiveTopology 1

pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = VkPrimitiveTopology 2

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = VkPrimitiveTopology 3

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP =
        VkPrimitiveTopology 4

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = VkPrimitiveTopology 5

pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY ::
        VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY =
        VkPrimitiveTopology 6

pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY ::
        VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY =
        VkPrimitiveTopology 7

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY ::
        VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY =
        VkPrimitiveTopology 8

pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY ::
        VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY =
        VkPrimitiveTopology 9

pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: VkPrimitiveTopology

pattern $bVK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: VkPrimitiveTopology
$mVK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: forall r. VkPrimitiveTopology -> (Void# -> r) -> (Void# -> r) -> r
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = VkPrimitiveTopology 10