{-# 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.PeerMemoryFeatureFlag
(VkPeerMemoryFeatureFlagBitsKHR(..),
VkPeerMemoryFeatureBitmask(VkPeerMemoryFeatureBitmask,
VkPeerMemoryFeatureFlags, VkPeerMemoryFeatureFlagBits,
VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT),
VkPeerMemoryFeatureFlags, VkPeerMemoryFeatureFlagBits)
where
import Data.Bits (Bits, FiniteBits)
import Data.Coerce (coerce)
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 VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBitsKHR VkFlags
deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
FiniteBits, Storable, Real, Data, Generic)
instance Show VkPeerMemoryFeatureFlagBitsKHR where
{-# INLINE show #-}
show (VkPeerMemoryFeatureFlagBitsKHR x) = show x
instance Read VkPeerMemoryFeatureFlagBitsKHR where
{-# INLINE readsPrec #-}
readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
newtype VkPeerMemoryFeatureBitmask (a ::
FlagType) = VkPeerMemoryFeatureBitmask VkFlags
deriving (Eq, Ord, Storable, Data, Generic)
type VkPeerMemoryFeatureFlags = VkPeerMemoryFeatureBitmask FlagMask
type VkPeerMemoryFeatureFlagBits =
VkPeerMemoryFeatureBitmask FlagBit
pattern VkPeerMemoryFeatureFlagBits ::
VkFlags -> VkPeerMemoryFeatureBitmask FlagBit
pattern VkPeerMemoryFeatureFlagBits n =
VkPeerMemoryFeatureBitmask n
pattern VkPeerMemoryFeatureFlags ::
VkFlags -> VkPeerMemoryFeatureBitmask FlagMask
pattern VkPeerMemoryFeatureFlags n = VkPeerMemoryFeatureBitmask n
deriving instance Bits (VkPeerMemoryFeatureBitmask FlagMask)
deriving instance FiniteBits (VkPeerMemoryFeatureBitmask FlagMask)
deriving instance Integral (VkPeerMemoryFeatureBitmask FlagMask)
deriving instance Num (VkPeerMemoryFeatureBitmask FlagMask)
deriving instance Bounded (VkPeerMemoryFeatureBitmask FlagMask)
deriving instance Enum (VkPeerMemoryFeatureBitmask FlagMask)
deriving instance Real (VkPeerMemoryFeatureBitmask FlagMask)
instance Show (VkPeerMemoryFeatureBitmask a) where
showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT
= showString "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"
showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_DST_BIT
= showString "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"
showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT
= showString "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"
showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
= showString "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"
showsPrec p (VkPeerMemoryFeatureBitmask x)
= showParen (p >= 11)
(showString "VkPeerMemoryFeatureBitmask " . showsPrec 11 x)
instance Read (VkPeerMemoryFeatureBitmask a) where
readPrec
= parens
(choose
[("VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT",
pure VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT),
("VK_PEER_MEMORY_FEATURE_COPY_DST_BIT",
pure VK_PEER_MEMORY_FEATURE_COPY_DST_BIT),
("VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT",
pure VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT),
("VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT",
pure VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT)]
+++
prec 10
(expectP (Ident "VkPeerMemoryFeatureBitmask") >>
(VkPeerMemoryFeatureBitmask <$> step readPrec)))
pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT ::
VkPeerMemoryFeatureBitmask a
pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT =
VkPeerMemoryFeatureBitmask 1
pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT ::
VkPeerMemoryFeatureBitmask a
pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT =
VkPeerMemoryFeatureBitmask 2
pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT ::
VkPeerMemoryFeatureBitmask a
pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT =
VkPeerMemoryFeatureBitmask 4
pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT ::
VkPeerMemoryFeatureBitmask a
pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT =
VkPeerMemoryFeatureBitmask 8