module Data.SpirV.Enum.ExecutionModel 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 ExecutionModel = ExecutionModel Word32 deriving (ExecutionModel -> ExecutionModel -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: ExecutionModel -> ExecutionModel -> Bool $c/= :: ExecutionModel -> ExecutionModel -> Bool == :: ExecutionModel -> ExecutionModel -> Bool $c== :: ExecutionModel -> ExecutionModel -> Bool Eq, Eq ExecutionModel ExecutionModel -> ExecutionModel -> Bool ExecutionModel -> ExecutionModel -> Ordering ExecutionModel -> ExecutionModel -> ExecutionModel 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 :: ExecutionModel -> ExecutionModel -> ExecutionModel $cmin :: ExecutionModel -> ExecutionModel -> ExecutionModel max :: ExecutionModel -> ExecutionModel -> ExecutionModel $cmax :: ExecutionModel -> ExecutionModel -> ExecutionModel >= :: ExecutionModel -> ExecutionModel -> Bool $c>= :: ExecutionModel -> ExecutionModel -> Bool > :: ExecutionModel -> ExecutionModel -> Bool $c> :: ExecutionModel -> ExecutionModel -> Bool <= :: ExecutionModel -> ExecutionModel -> Bool $c<= :: ExecutionModel -> ExecutionModel -> Bool < :: ExecutionModel -> ExecutionModel -> Bool $c< :: ExecutionModel -> ExecutionModel -> Bool compare :: ExecutionModel -> ExecutionModel -> Ordering $ccompare :: ExecutionModel -> ExecutionModel -> Ordering Ord, Ptr ExecutionModel -> IO ExecutionModel Ptr ExecutionModel -> Int -> IO ExecutionModel Ptr ExecutionModel -> Int -> ExecutionModel -> IO () Ptr ExecutionModel -> ExecutionModel -> IO () ExecutionModel -> Int forall b. Ptr b -> Int -> IO ExecutionModel forall b. Ptr b -> Int -> ExecutionModel -> 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 ExecutionModel -> ExecutionModel -> IO () $cpoke :: Ptr ExecutionModel -> ExecutionModel -> IO () peek :: Ptr ExecutionModel -> IO ExecutionModel $cpeek :: Ptr ExecutionModel -> IO ExecutionModel pokeByteOff :: forall b. Ptr b -> Int -> ExecutionModel -> IO () $cpokeByteOff :: forall b. Ptr b -> Int -> ExecutionModel -> IO () peekByteOff :: forall b. Ptr b -> Int -> IO ExecutionModel $cpeekByteOff :: forall b. Ptr b -> Int -> IO ExecutionModel pokeElemOff :: Ptr ExecutionModel -> Int -> ExecutionModel -> IO () $cpokeElemOff :: Ptr ExecutionModel -> Int -> ExecutionModel -> IO () peekElemOff :: Ptr ExecutionModel -> Int -> IO ExecutionModel $cpeekElemOff :: Ptr ExecutionModel -> Int -> IO ExecutionModel alignment :: ExecutionModel -> Int $calignment :: ExecutionModel -> Int sizeOf :: ExecutionModel -> Int $csizeOf :: ExecutionModel -> Int Storable) pattern Vertex :: ExecutionModel pattern $bVertex :: ExecutionModel $mVertex :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r Vertex = ExecutionModel 0 pattern TessellationControl :: ExecutionModel pattern $bTessellationControl :: ExecutionModel $mTessellationControl :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r TessellationControl = ExecutionModel 1 pattern TessellationEvaluation :: ExecutionModel pattern $bTessellationEvaluation :: ExecutionModel $mTessellationEvaluation :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r TessellationEvaluation = ExecutionModel 2 pattern Geometry :: ExecutionModel pattern $bGeometry :: ExecutionModel $mGeometry :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r Geometry = ExecutionModel 3 pattern Fragment :: ExecutionModel pattern $bFragment :: ExecutionModel $mFragment :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r Fragment = ExecutionModel 4 pattern GLCompute :: ExecutionModel pattern $bGLCompute :: ExecutionModel $mGLCompute :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r GLCompute = ExecutionModel 5 pattern Kernel :: ExecutionModel pattern $bKernel :: ExecutionModel $mKernel :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r Kernel = ExecutionModel 6 pattern TaskNV :: ExecutionModel pattern $bTaskNV :: ExecutionModel $mTaskNV :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r TaskNV = ExecutionModel 5267 pattern MeshNV :: ExecutionModel pattern $bMeshNV :: ExecutionModel $mMeshNV :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r MeshNV = ExecutionModel 5268 pattern RayGenerationKHR :: ExecutionModel pattern $bRayGenerationKHR :: ExecutionModel $mRayGenerationKHR :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r RayGenerationKHR = ExecutionModel 5313 pattern RayGenerationNV :: ExecutionModel pattern $bRayGenerationNV :: ExecutionModel $mRayGenerationNV :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r RayGenerationNV = ExecutionModel 5313 pattern IntersectionKHR :: ExecutionModel pattern $bIntersectionKHR :: ExecutionModel $mIntersectionKHR :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r IntersectionKHR = ExecutionModel 5314 pattern IntersectionNV :: ExecutionModel pattern $bIntersectionNV :: ExecutionModel $mIntersectionNV :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r IntersectionNV = ExecutionModel 5314 pattern AnyHitKHR :: ExecutionModel pattern $bAnyHitKHR :: ExecutionModel $mAnyHitKHR :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r AnyHitKHR = ExecutionModel 5315 pattern AnyHitNV :: ExecutionModel pattern $bAnyHitNV :: ExecutionModel $mAnyHitNV :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r AnyHitNV = ExecutionModel 5315 pattern ClosestHitKHR :: ExecutionModel pattern $bClosestHitKHR :: ExecutionModel $mClosestHitKHR :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r ClosestHitKHR = ExecutionModel 5316 pattern ClosestHitNV :: ExecutionModel pattern $bClosestHitNV :: ExecutionModel $mClosestHitNV :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r ClosestHitNV = ExecutionModel 5316 pattern MissKHR :: ExecutionModel pattern $bMissKHR :: ExecutionModel $mMissKHR :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r MissKHR = ExecutionModel 5317 pattern MissNV :: ExecutionModel pattern $bMissNV :: ExecutionModel $mMissNV :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r MissNV = ExecutionModel 5317 pattern CallableKHR :: ExecutionModel pattern $bCallableKHR :: ExecutionModel $mCallableKHR :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r CallableKHR = ExecutionModel 5318 pattern CallableNV :: ExecutionModel pattern $bCallableNV :: ExecutionModel $mCallableNV :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r CallableNV = ExecutionModel 5318 pattern TaskEXT :: ExecutionModel pattern $bTaskEXT :: ExecutionModel $mTaskEXT :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r TaskEXT = ExecutionModel 5364 pattern MeshEXT :: ExecutionModel pattern $bMeshEXT :: ExecutionModel $mMeshEXT :: forall {r}. ExecutionModel -> ((# #) -> r) -> ((# #) -> r) -> r MeshEXT = ExecutionModel 5365 toName :: IsString a => ExecutionModel -> a toName :: forall a. IsString a => ExecutionModel -> a toName ExecutionModel x = case ExecutionModel x of ExecutionModel Vertex -> a "Vertex" ExecutionModel TessellationControl -> a "TessellationControl" ExecutionModel TessellationEvaluation -> a "TessellationEvaluation" ExecutionModel Geometry -> a "Geometry" ExecutionModel Fragment -> a "Fragment" ExecutionModel GLCompute -> a "GLCompute" ExecutionModel Kernel -> a "Kernel" ExecutionModel TaskNV -> a "TaskNV" ExecutionModel MeshNV -> a "MeshNV" ExecutionModel RayGenerationKHR -> a "RayGenerationKHR" ExecutionModel RayGenerationNV -> a "RayGenerationNV" ExecutionModel IntersectionKHR -> a "IntersectionKHR" ExecutionModel IntersectionNV -> a "IntersectionNV" ExecutionModel AnyHitKHR -> a "AnyHitKHR" ExecutionModel AnyHitNV -> a "AnyHitNV" ExecutionModel ClosestHitKHR -> a "ClosestHitKHR" ExecutionModel ClosestHitNV -> a "ClosestHitNV" ExecutionModel MissKHR -> a "MissKHR" ExecutionModel MissNV -> a "MissNV" ExecutionModel CallableKHR -> a "CallableKHR" ExecutionModel CallableNV -> a "CallableNV" ExecutionModel TaskEXT -> a "TaskEXT" ExecutionModel MeshEXT -> a "MeshEXT" ExecutionModel unknown -> forall a. IsString a => [Char] -> a fromString forall a b. (a -> b) -> a -> b $ [Char] "ExecutionModel " forall a. [a] -> [a] -> [a] ++ forall a. Show a => a -> [Char] show ExecutionModel unknown instance Show ExecutionModel where show :: ExecutionModel -> [Char] show = forall a. IsString a => ExecutionModel -> a toName fromName :: (IsString a, Eq a) => a -> Maybe ExecutionModel fromName :: forall a. (IsString a, Eq a) => a -> Maybe ExecutionModel fromName a x = case a x of a "Vertex" -> forall a. a -> Maybe a Just ExecutionModel Vertex a "TessellationControl" -> forall a. a -> Maybe a Just ExecutionModel TessellationControl a "TessellationEvaluation" -> forall a. a -> Maybe a Just ExecutionModel TessellationEvaluation a "Geometry" -> forall a. a -> Maybe a Just ExecutionModel Geometry a "Fragment" -> forall a. a -> Maybe a Just ExecutionModel Fragment a "GLCompute" -> forall a. a -> Maybe a Just ExecutionModel GLCompute a "Kernel" -> forall a. a -> Maybe a Just ExecutionModel Kernel a "TaskNV" -> forall a. a -> Maybe a Just ExecutionModel TaskNV a "MeshNV" -> forall a. a -> Maybe a Just ExecutionModel MeshNV a "RayGenerationKHR" -> forall a. a -> Maybe a Just ExecutionModel RayGenerationKHR a "RayGenerationNV" -> forall a. a -> Maybe a Just ExecutionModel RayGenerationNV a "IntersectionKHR" -> forall a. a -> Maybe a Just ExecutionModel IntersectionKHR a "IntersectionNV" -> forall a. a -> Maybe a Just ExecutionModel IntersectionNV a "AnyHitKHR" -> forall a. a -> Maybe a Just ExecutionModel AnyHitKHR a "AnyHitNV" -> forall a. a -> Maybe a Just ExecutionModel AnyHitNV a "ClosestHitKHR" -> forall a. a -> Maybe a Just ExecutionModel ClosestHitKHR a "ClosestHitNV" -> forall a. a -> Maybe a Just ExecutionModel ClosestHitNV a "MissKHR" -> forall a. a -> Maybe a Just ExecutionModel MissKHR a "MissNV" -> forall a. a -> Maybe a Just ExecutionModel MissNV a "CallableKHR" -> forall a. a -> Maybe a Just ExecutionModel CallableKHR a "CallableNV" -> forall a. a -> Maybe a Just ExecutionModel CallableNV a "TaskEXT" -> forall a. a -> Maybe a Just ExecutionModel TaskEXT a "MeshEXT" -> forall a. a -> Maybe a Just ExecutionModel MeshEXT a _unknown -> forall a. Maybe a Nothing instance Read ExecutionModel where readPrec :: ReadPrec ExecutionModel 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 ExecutionModel fromName [Char] s