module Data.SpirV.Enum.MemoryModel where import Data.String (IsString(..)) import Data.Word (Word32) import Foreign (Storable(..)) import GHC.Read (Read(..)) import Text.ParserCombinators.ReadPrec (pfail) import qualified GHC.Read as Read import qualified Text.Read.Lex as Lex newtype MemoryModel = MemoryModel Word32 deriving (MemoryModel -> MemoryModel -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: MemoryModel -> MemoryModel -> Bool $c/= :: MemoryModel -> MemoryModel -> Bool == :: MemoryModel -> MemoryModel -> Bool $c== :: MemoryModel -> MemoryModel -> Bool Eq, Eq MemoryModel MemoryModel -> MemoryModel -> Bool MemoryModel -> MemoryModel -> Ordering MemoryModel -> MemoryModel -> MemoryModel 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 :: MemoryModel -> MemoryModel -> MemoryModel $cmin :: MemoryModel -> MemoryModel -> MemoryModel max :: MemoryModel -> MemoryModel -> MemoryModel $cmax :: MemoryModel -> MemoryModel -> MemoryModel >= :: MemoryModel -> MemoryModel -> Bool $c>= :: MemoryModel -> MemoryModel -> Bool > :: MemoryModel -> MemoryModel -> Bool $c> :: MemoryModel -> MemoryModel -> Bool <= :: MemoryModel -> MemoryModel -> Bool $c<= :: MemoryModel -> MemoryModel -> Bool < :: MemoryModel -> MemoryModel -> Bool $c< :: MemoryModel -> MemoryModel -> Bool compare :: MemoryModel -> MemoryModel -> Ordering $ccompare :: MemoryModel -> MemoryModel -> Ordering Ord, Ptr MemoryModel -> IO MemoryModel Ptr MemoryModel -> Int -> IO MemoryModel Ptr MemoryModel -> Int -> MemoryModel -> IO () Ptr MemoryModel -> MemoryModel -> IO () MemoryModel -> Int forall b. Ptr b -> Int -> IO MemoryModel forall b. Ptr b -> Int -> MemoryModel -> 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 MemoryModel -> MemoryModel -> IO () $cpoke :: Ptr MemoryModel -> MemoryModel -> IO () peek :: Ptr MemoryModel -> IO MemoryModel $cpeek :: Ptr MemoryModel -> IO MemoryModel pokeByteOff :: forall b. Ptr b -> Int -> MemoryModel -> IO () $cpokeByteOff :: forall b. Ptr b -> Int -> MemoryModel -> IO () peekByteOff :: forall b. Ptr b -> Int -> IO MemoryModel $cpeekByteOff :: forall b. Ptr b -> Int -> IO MemoryModel pokeElemOff :: Ptr MemoryModel -> Int -> MemoryModel -> IO () $cpokeElemOff :: Ptr MemoryModel -> Int -> MemoryModel -> IO () peekElemOff :: Ptr MemoryModel -> Int -> IO MemoryModel $cpeekElemOff :: Ptr MemoryModel -> Int -> IO MemoryModel alignment :: MemoryModel -> Int $calignment :: MemoryModel -> Int sizeOf :: MemoryModel -> Int $csizeOf :: MemoryModel -> Int Storable) pattern Simple :: MemoryModel pattern $bSimple :: MemoryModel $mSimple :: forall {r}. MemoryModel -> ((# #) -> r) -> ((# #) -> r) -> r Simple = MemoryModel 0 pattern GLSL450 :: MemoryModel pattern $bGLSL450 :: MemoryModel $mGLSL450 :: forall {r}. MemoryModel -> ((# #) -> r) -> ((# #) -> r) -> r GLSL450 = MemoryModel 1 pattern OpenCL :: MemoryModel pattern $bOpenCL :: MemoryModel $mOpenCL :: forall {r}. MemoryModel -> ((# #) -> r) -> ((# #) -> r) -> r OpenCL = MemoryModel 2 pattern Vulkan :: MemoryModel pattern $bVulkan :: MemoryModel $mVulkan :: forall {r}. MemoryModel -> ((# #) -> r) -> ((# #) -> r) -> r Vulkan = MemoryModel 3 pattern VulkanKHR :: MemoryModel pattern $bVulkanKHR :: MemoryModel $mVulkanKHR :: forall {r}. MemoryModel -> ((# #) -> r) -> ((# #) -> r) -> r VulkanKHR = MemoryModel 3 toName :: IsString a => MemoryModel -> a toName :: forall a. IsString a => MemoryModel -> a toName MemoryModel x = case MemoryModel x of MemoryModel Simple -> a "Simple" MemoryModel GLSL450 -> a "GLSL450" MemoryModel OpenCL -> a "OpenCL" MemoryModel Vulkan -> a "Vulkan" MemoryModel VulkanKHR -> a "VulkanKHR" MemoryModel unknown -> forall a. IsString a => [Char] -> a fromString forall a b. (a -> b) -> a -> b $ [Char] "MemoryModel " forall a. [a] -> [a] -> [a] ++ forall a. Show a => a -> [Char] show MemoryModel unknown instance Show MemoryModel where show :: MemoryModel -> [Char] show = forall a. IsString a => MemoryModel -> a toName fromName :: (IsString a, Eq a) => a -> Maybe MemoryModel fromName :: forall a. (IsString a, Eq a) => a -> Maybe MemoryModel fromName a x = case a x of a "Simple" -> forall a. a -> Maybe a Just MemoryModel Simple a "GLSL450" -> forall a. a -> Maybe a Just MemoryModel GLSL450 a "OpenCL" -> forall a. a -> Maybe a Just MemoryModel OpenCL a "Vulkan" -> forall a. a -> Maybe a Just MemoryModel Vulkan a "VulkanKHR" -> forall a. a -> Maybe a Just MemoryModel VulkanKHR a _unknown -> forall a. Maybe a Nothing instance Read MemoryModel where readPrec :: ReadPrec MemoryModel readPrec = forall a. ReadPrec a -> ReadPrec a Read.parens do Lex.Ident [Char] s <- ReadPrec Lexeme Read.lexP forall b a. b -> (a -> b) -> Maybe a -> b maybe forall a. ReadPrec a pfail forall (f :: * -> *) a. Applicative f => a -> f a pure forall a b. (a -> b) -> a -> b $ forall a. (IsString a, Eq a) => a -> Maybe MemoryModel fromName [Char] s