module Data.SpirV.Enum.SourceLanguage 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 SourceLanguage = SourceLanguage Word32 deriving (SourceLanguage -> SourceLanguage -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: SourceLanguage -> SourceLanguage -> Bool $c/= :: SourceLanguage -> SourceLanguage -> Bool == :: SourceLanguage -> SourceLanguage -> Bool $c== :: SourceLanguage -> SourceLanguage -> Bool Eq, Eq SourceLanguage SourceLanguage -> SourceLanguage -> Bool SourceLanguage -> SourceLanguage -> Ordering SourceLanguage -> SourceLanguage -> SourceLanguage 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 :: SourceLanguage -> SourceLanguage -> SourceLanguage $cmin :: SourceLanguage -> SourceLanguage -> SourceLanguage max :: SourceLanguage -> SourceLanguage -> SourceLanguage $cmax :: SourceLanguage -> SourceLanguage -> SourceLanguage >= :: SourceLanguage -> SourceLanguage -> Bool $c>= :: SourceLanguage -> SourceLanguage -> Bool > :: SourceLanguage -> SourceLanguage -> Bool $c> :: SourceLanguage -> SourceLanguage -> Bool <= :: SourceLanguage -> SourceLanguage -> Bool $c<= :: SourceLanguage -> SourceLanguage -> Bool < :: SourceLanguage -> SourceLanguage -> Bool $c< :: SourceLanguage -> SourceLanguage -> Bool compare :: SourceLanguage -> SourceLanguage -> Ordering $ccompare :: SourceLanguage -> SourceLanguage -> Ordering Ord, Ptr SourceLanguage -> IO SourceLanguage Ptr SourceLanguage -> Int -> IO SourceLanguage Ptr SourceLanguage -> Int -> SourceLanguage -> IO () Ptr SourceLanguage -> SourceLanguage -> IO () SourceLanguage -> Int forall b. Ptr b -> Int -> IO SourceLanguage forall b. Ptr b -> Int -> SourceLanguage -> 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 SourceLanguage -> SourceLanguage -> IO () $cpoke :: Ptr SourceLanguage -> SourceLanguage -> IO () peek :: Ptr SourceLanguage -> IO SourceLanguage $cpeek :: Ptr SourceLanguage -> IO SourceLanguage pokeByteOff :: forall b. Ptr b -> Int -> SourceLanguage -> IO () $cpokeByteOff :: forall b. Ptr b -> Int -> SourceLanguage -> IO () peekByteOff :: forall b. Ptr b -> Int -> IO SourceLanguage $cpeekByteOff :: forall b. Ptr b -> Int -> IO SourceLanguage pokeElemOff :: Ptr SourceLanguage -> Int -> SourceLanguage -> IO () $cpokeElemOff :: Ptr SourceLanguage -> Int -> SourceLanguage -> IO () peekElemOff :: Ptr SourceLanguage -> Int -> IO SourceLanguage $cpeekElemOff :: Ptr SourceLanguage -> Int -> IO SourceLanguage alignment :: SourceLanguage -> Int $calignment :: SourceLanguage -> Int sizeOf :: SourceLanguage -> Int $csizeOf :: SourceLanguage -> Int Storable) pattern Unknown :: SourceLanguage pattern $bUnknown :: SourceLanguage $mUnknown :: forall {r}. SourceLanguage -> ((# #) -> r) -> ((# #) -> r) -> r Unknown = SourceLanguage 0 pattern ESSL :: SourceLanguage pattern $bESSL :: SourceLanguage $mESSL :: forall {r}. SourceLanguage -> ((# #) -> r) -> ((# #) -> r) -> r ESSL = SourceLanguage 1 pattern GLSL :: SourceLanguage pattern $bGLSL :: SourceLanguage $mGLSL :: forall {r}. SourceLanguage -> ((# #) -> r) -> ((# #) -> r) -> r GLSL = SourceLanguage 2 pattern OpenCL_C :: SourceLanguage pattern $bOpenCL_C :: SourceLanguage $mOpenCL_C :: forall {r}. SourceLanguage -> ((# #) -> r) -> ((# #) -> r) -> r OpenCL_C = SourceLanguage 3 pattern OpenCL_CPP :: SourceLanguage pattern $bOpenCL_CPP :: SourceLanguage $mOpenCL_CPP :: forall {r}. SourceLanguage -> ((# #) -> r) -> ((# #) -> r) -> r OpenCL_CPP = SourceLanguage 4 pattern HLSL :: SourceLanguage pattern $bHLSL :: SourceLanguage $mHLSL :: forall {r}. SourceLanguage -> ((# #) -> r) -> ((# #) -> r) -> r HLSL = SourceLanguage 5 pattern CPP_for_OpenCL :: SourceLanguage pattern $bCPP_for_OpenCL :: SourceLanguage $mCPP_for_OpenCL :: forall {r}. SourceLanguage -> ((# #) -> r) -> ((# #) -> r) -> r CPP_for_OpenCL = SourceLanguage 6 pattern SYCL :: SourceLanguage pattern $bSYCL :: SourceLanguage $mSYCL :: forall {r}. SourceLanguage -> ((# #) -> r) -> ((# #) -> r) -> r SYCL = SourceLanguage 7 toName :: IsString a => SourceLanguage -> a toName :: forall a. IsString a => SourceLanguage -> a toName SourceLanguage x = case SourceLanguage x of SourceLanguage Unknown -> a "Unknown" SourceLanguage ESSL -> a "ESSL" SourceLanguage GLSL -> a "GLSL" SourceLanguage OpenCL_C -> a "OpenCL_C" SourceLanguage OpenCL_CPP -> a "OpenCL_CPP" SourceLanguage HLSL -> a "HLSL" SourceLanguage CPP_for_OpenCL -> a "CPP_for_OpenCL" SourceLanguage SYCL -> a "SYCL" SourceLanguage unknown -> forall a. IsString a => [Char] -> a fromString forall a b. (a -> b) -> a -> b $ [Char] "SourceLanguage " forall a. [a] -> [a] -> [a] ++ forall a. Show a => a -> [Char] show SourceLanguage unknown instance Show SourceLanguage where show :: SourceLanguage -> [Char] show = forall a. IsString a => SourceLanguage -> a toName fromName :: (IsString a, Eq a) => a -> Maybe SourceLanguage fromName :: forall a. (IsString a, Eq a) => a -> Maybe SourceLanguage fromName a x = case a x of a "Unknown" -> forall a. a -> Maybe a Just SourceLanguage Unknown a "ESSL" -> forall a. a -> Maybe a Just SourceLanguage ESSL a "GLSL" -> forall a. a -> Maybe a Just SourceLanguage GLSL a "OpenCL_C" -> forall a. a -> Maybe a Just SourceLanguage OpenCL_C a "OpenCL_CPP" -> forall a. a -> Maybe a Just SourceLanguage OpenCL_CPP a "HLSL" -> forall a. a -> Maybe a Just SourceLanguage HLSL a "CPP_for_OpenCL" -> forall a. a -> Maybe a Just SourceLanguage CPP_for_OpenCL a "SYCL" -> forall a. a -> Maybe a Just SourceLanguage SYCL a _unknown -> forall a. Maybe a Nothing instance Read SourceLanguage where readPrec :: ReadPrec SourceLanguage 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 SourceLanguage fromName [Char] s