{-# 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.SemaphoreImportFlag (VkSemaphoreImportFlagBitsKHR(..), VkSemaphoreImportBitmask(VkSemaphoreImportBitmask, VkSemaphoreImportFlags, VkSemaphoreImportFlagBits, VK_SEMAPHORE_IMPORT_TEMPORARY_BIT), VkSemaphoreImportFlags, VkSemaphoreImportFlagBits) 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 VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBitsKHR VkFlags deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits, FiniteBits, Storable, Real, Data, Generic) instance Show VkSemaphoreImportFlagBitsKHR where {-# INLINE show #-} show (VkSemaphoreImportFlagBitsKHR x) = show x instance Read VkSemaphoreImportFlagBitsKHR where {-# INLINE readsPrec #-} readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags) newtype VkSemaphoreImportBitmask (a :: FlagType) = VkSemaphoreImportBitmask VkFlags deriving (Eq, Ord, Storable, Data, Generic) type VkSemaphoreImportFlags = VkSemaphoreImportBitmask FlagMask type VkSemaphoreImportFlagBits = VkSemaphoreImportBitmask FlagBit pattern VkSemaphoreImportFlagBits :: VkFlags -> VkSemaphoreImportBitmask FlagBit pattern VkSemaphoreImportFlagBits n = VkSemaphoreImportBitmask n pattern VkSemaphoreImportFlags :: VkFlags -> VkSemaphoreImportBitmask FlagMask pattern VkSemaphoreImportFlags n = VkSemaphoreImportBitmask n deriving instance Bits (VkSemaphoreImportBitmask FlagMask) deriving instance FiniteBits (VkSemaphoreImportBitmask FlagMask) deriving instance Integral (VkSemaphoreImportBitmask FlagMask) deriving instance Num (VkSemaphoreImportBitmask FlagMask) deriving instance Bounded (VkSemaphoreImportBitmask FlagMask) deriving instance Enum (VkSemaphoreImportBitmask FlagMask) deriving instance Real (VkSemaphoreImportBitmask FlagMask) instance Show (VkSemaphoreImportBitmask a) where showsPrec _ VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = showString "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT" showsPrec p (VkSemaphoreImportBitmask x) = showParen (p >= 11) (showString "VkSemaphoreImportBitmask " . showsPrec 11 x) instance Read (VkSemaphoreImportBitmask a) where readPrec = parens (choose [("VK_SEMAPHORE_IMPORT_TEMPORARY_BIT", pure VK_SEMAPHORE_IMPORT_TEMPORARY_BIT)] +++ prec 10 (expectP (Ident "VkSemaphoreImportBitmask") >> (VkSemaphoreImportBitmask <$> step readPrec))) -- | bitpos = @0@ pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT :: VkSemaphoreImportBitmask a pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = VkSemaphoreImportBitmask 1