{-# OPTIONS_HADDOCK ignore-exports#-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE Strict #-}
module Graphics.Vulkan.Types.Enum.LogicOp
(VkLogicOp(VkLogicOp, VK_LOGIC_OP_CLEAR, VK_LOGIC_OP_AND,
VK_LOGIC_OP_AND_REVERSE, VK_LOGIC_OP_COPY,
VK_LOGIC_OP_AND_INVERTED, VK_LOGIC_OP_NO_OP, VK_LOGIC_OP_XOR,
VK_LOGIC_OP_OR, VK_LOGIC_OP_NOR, VK_LOGIC_OP_EQUIVALENT,
VK_LOGIC_OP_INVERT, VK_LOGIC_OP_OR_REVERSE,
VK_LOGIC_OP_COPY_INVERTED, VK_LOGIC_OP_OR_INVERTED,
VK_LOGIC_OP_NAND, VK_LOGIC_OP_SET))
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 (..))
newtype VkLogicOp = VkLogicOp Int32
deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
instance Show VkLogicOp where
showsPrec _ VK_LOGIC_OP_CLEAR = showString "VK_LOGIC_OP_CLEAR"
showsPrec _ VK_LOGIC_OP_AND = showString "VK_LOGIC_OP_AND"
showsPrec _ VK_LOGIC_OP_AND_REVERSE
= showString "VK_LOGIC_OP_AND_REVERSE"
showsPrec _ VK_LOGIC_OP_COPY = showString "VK_LOGIC_OP_COPY"
showsPrec _ VK_LOGIC_OP_AND_INVERTED
= showString "VK_LOGIC_OP_AND_INVERTED"
showsPrec _ VK_LOGIC_OP_NO_OP = showString "VK_LOGIC_OP_NO_OP"
showsPrec _ VK_LOGIC_OP_XOR = showString "VK_LOGIC_OP_XOR"
showsPrec _ VK_LOGIC_OP_OR = showString "VK_LOGIC_OP_OR"
showsPrec _ VK_LOGIC_OP_NOR = showString "VK_LOGIC_OP_NOR"
showsPrec _ VK_LOGIC_OP_EQUIVALENT
= showString "VK_LOGIC_OP_EQUIVALENT"
showsPrec _ VK_LOGIC_OP_INVERT = showString "VK_LOGIC_OP_INVERT"
showsPrec _ VK_LOGIC_OP_OR_REVERSE
= showString "VK_LOGIC_OP_OR_REVERSE"
showsPrec _ VK_LOGIC_OP_COPY_INVERTED
= showString "VK_LOGIC_OP_COPY_INVERTED"
showsPrec _ VK_LOGIC_OP_OR_INVERTED
= showString "VK_LOGIC_OP_OR_INVERTED"
showsPrec _ VK_LOGIC_OP_NAND = showString "VK_LOGIC_OP_NAND"
showsPrec _ VK_LOGIC_OP_SET = showString "VK_LOGIC_OP_SET"
showsPrec p (VkLogicOp x)
= showParen (p >= 11) (showString "VkLogicOp " . showsPrec 11 x)
instance Read VkLogicOp where
readPrec
= parens
(choose
[("VK_LOGIC_OP_CLEAR", pure VK_LOGIC_OP_CLEAR),
("VK_LOGIC_OP_AND", pure VK_LOGIC_OP_AND),
("VK_LOGIC_OP_AND_REVERSE", pure VK_LOGIC_OP_AND_REVERSE),
("VK_LOGIC_OP_COPY", pure VK_LOGIC_OP_COPY),
("VK_LOGIC_OP_AND_INVERTED", pure VK_LOGIC_OP_AND_INVERTED),
("VK_LOGIC_OP_NO_OP", pure VK_LOGIC_OP_NO_OP),
("VK_LOGIC_OP_XOR", pure VK_LOGIC_OP_XOR),
("VK_LOGIC_OP_OR", pure VK_LOGIC_OP_OR),
("VK_LOGIC_OP_NOR", pure VK_LOGIC_OP_NOR),
("VK_LOGIC_OP_EQUIVALENT", pure VK_LOGIC_OP_EQUIVALENT),
("VK_LOGIC_OP_INVERT", pure VK_LOGIC_OP_INVERT),
("VK_LOGIC_OP_OR_REVERSE", pure VK_LOGIC_OP_OR_REVERSE),
("VK_LOGIC_OP_COPY_INVERTED", pure VK_LOGIC_OP_COPY_INVERTED),
("VK_LOGIC_OP_OR_INVERTED", pure VK_LOGIC_OP_OR_INVERTED),
("VK_LOGIC_OP_NAND", pure VK_LOGIC_OP_NAND),
("VK_LOGIC_OP_SET", pure VK_LOGIC_OP_SET)]
+++
prec 10
(expectP (Ident "VkLogicOp") >> (VkLogicOp <$> step readPrec)))
pattern VK_LOGIC_OP_CLEAR :: VkLogicOp
pattern VK_LOGIC_OP_CLEAR = VkLogicOp 0
pattern VK_LOGIC_OP_AND :: VkLogicOp
pattern VK_LOGIC_OP_AND = VkLogicOp 1
pattern VK_LOGIC_OP_AND_REVERSE :: VkLogicOp
pattern VK_LOGIC_OP_AND_REVERSE = VkLogicOp 2
pattern VK_LOGIC_OP_COPY :: VkLogicOp
pattern VK_LOGIC_OP_COPY = VkLogicOp 3
pattern VK_LOGIC_OP_AND_INVERTED :: VkLogicOp
pattern VK_LOGIC_OP_AND_INVERTED = VkLogicOp 4
pattern VK_LOGIC_OP_NO_OP :: VkLogicOp
pattern VK_LOGIC_OP_NO_OP = VkLogicOp 5
pattern VK_LOGIC_OP_XOR :: VkLogicOp
pattern VK_LOGIC_OP_XOR = VkLogicOp 6
pattern VK_LOGIC_OP_OR :: VkLogicOp
pattern VK_LOGIC_OP_OR = VkLogicOp 7
pattern VK_LOGIC_OP_NOR :: VkLogicOp
pattern VK_LOGIC_OP_NOR = VkLogicOp 8
pattern VK_LOGIC_OP_EQUIVALENT :: VkLogicOp
pattern VK_LOGIC_OP_EQUIVALENT = VkLogicOp 9
pattern VK_LOGIC_OP_INVERT :: VkLogicOp
pattern VK_LOGIC_OP_INVERT = VkLogicOp 10
pattern VK_LOGIC_OP_OR_REVERSE :: VkLogicOp
pattern VK_LOGIC_OP_OR_REVERSE = VkLogicOp 11
pattern VK_LOGIC_OP_COPY_INVERTED :: VkLogicOp
pattern VK_LOGIC_OP_COPY_INVERTED = VkLogicOp 12
pattern VK_LOGIC_OP_OR_INVERTED :: VkLogicOp
pattern VK_LOGIC_OP_OR_INVERTED = VkLogicOp 13
pattern VK_LOGIC_OP_NAND :: VkLogicOp
pattern VK_LOGIC_OP_NAND = VkLogicOp 14
pattern VK_LOGIC_OP_SET :: VkLogicOp
pattern VK_LOGIC_OP_SET = VkLogicOp 15