module Data.SpirV.Enum.FunctionParameterAttribute 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 FunctionParameterAttribute = FunctionParameterAttribute Word32 deriving (FunctionParameterAttribute -> FunctionParameterAttribute -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool $c/= :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool == :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool $c== :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool Eq, Eq FunctionParameterAttribute FunctionParameterAttribute -> FunctionParameterAttribute -> Bool FunctionParameterAttribute -> FunctionParameterAttribute -> Ordering FunctionParameterAttribute -> FunctionParameterAttribute -> FunctionParameterAttribute 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 :: FunctionParameterAttribute -> FunctionParameterAttribute -> FunctionParameterAttribute $cmin :: FunctionParameterAttribute -> FunctionParameterAttribute -> FunctionParameterAttribute max :: FunctionParameterAttribute -> FunctionParameterAttribute -> FunctionParameterAttribute $cmax :: FunctionParameterAttribute -> FunctionParameterAttribute -> FunctionParameterAttribute >= :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool $c>= :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool > :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool $c> :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool <= :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool $c<= :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool < :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool $c< :: FunctionParameterAttribute -> FunctionParameterAttribute -> Bool compare :: FunctionParameterAttribute -> FunctionParameterAttribute -> Ordering $ccompare :: FunctionParameterAttribute -> FunctionParameterAttribute -> Ordering Ord, Ptr FunctionParameterAttribute -> IO FunctionParameterAttribute Ptr FunctionParameterAttribute -> Int -> IO FunctionParameterAttribute Ptr FunctionParameterAttribute -> Int -> FunctionParameterAttribute -> IO () Ptr FunctionParameterAttribute -> FunctionParameterAttribute -> IO () FunctionParameterAttribute -> Int forall b. Ptr b -> Int -> IO FunctionParameterAttribute forall b. Ptr b -> Int -> FunctionParameterAttribute -> 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 FunctionParameterAttribute -> FunctionParameterAttribute -> IO () $cpoke :: Ptr FunctionParameterAttribute -> FunctionParameterAttribute -> IO () peek :: Ptr FunctionParameterAttribute -> IO FunctionParameterAttribute $cpeek :: Ptr FunctionParameterAttribute -> IO FunctionParameterAttribute pokeByteOff :: forall b. Ptr b -> Int -> FunctionParameterAttribute -> IO () $cpokeByteOff :: forall b. Ptr b -> Int -> FunctionParameterAttribute -> IO () peekByteOff :: forall b. Ptr b -> Int -> IO FunctionParameterAttribute $cpeekByteOff :: forall b. Ptr b -> Int -> IO FunctionParameterAttribute pokeElemOff :: Ptr FunctionParameterAttribute -> Int -> FunctionParameterAttribute -> IO () $cpokeElemOff :: Ptr FunctionParameterAttribute -> Int -> FunctionParameterAttribute -> IO () peekElemOff :: Ptr FunctionParameterAttribute -> Int -> IO FunctionParameterAttribute $cpeekElemOff :: Ptr FunctionParameterAttribute -> Int -> IO FunctionParameterAttribute alignment :: FunctionParameterAttribute -> Int $calignment :: FunctionParameterAttribute -> Int sizeOf :: FunctionParameterAttribute -> Int $csizeOf :: FunctionParameterAttribute -> Int Storable) pattern Zext :: FunctionParameterAttribute pattern $bZext :: FunctionParameterAttribute $mZext :: forall {r}. FunctionParameterAttribute -> ((# #) -> r) -> ((# #) -> r) -> r Zext = FunctionParameterAttribute 0 pattern Sext :: FunctionParameterAttribute pattern $bSext :: FunctionParameterAttribute $mSext :: forall {r}. FunctionParameterAttribute -> ((# #) -> r) -> ((# #) -> r) -> r Sext = FunctionParameterAttribute 1 pattern ByVal :: FunctionParameterAttribute pattern $bByVal :: FunctionParameterAttribute $mByVal :: forall {r}. FunctionParameterAttribute -> ((# #) -> r) -> ((# #) -> r) -> r ByVal = FunctionParameterAttribute 2 pattern Sret :: FunctionParameterAttribute pattern $bSret :: FunctionParameterAttribute $mSret :: forall {r}. FunctionParameterAttribute -> ((# #) -> r) -> ((# #) -> r) -> r Sret = FunctionParameterAttribute 3 pattern NoAlias :: FunctionParameterAttribute pattern $bNoAlias :: FunctionParameterAttribute $mNoAlias :: forall {r}. FunctionParameterAttribute -> ((# #) -> r) -> ((# #) -> r) -> r NoAlias = FunctionParameterAttribute 4 pattern NoCapture :: FunctionParameterAttribute pattern $bNoCapture :: FunctionParameterAttribute $mNoCapture :: forall {r}. FunctionParameterAttribute -> ((# #) -> r) -> ((# #) -> r) -> r NoCapture = FunctionParameterAttribute 5 pattern NoWrite :: FunctionParameterAttribute pattern $bNoWrite :: FunctionParameterAttribute $mNoWrite :: forall {r}. FunctionParameterAttribute -> ((# #) -> r) -> ((# #) -> r) -> r NoWrite = FunctionParameterAttribute 6 pattern NoReadWrite :: FunctionParameterAttribute pattern $bNoReadWrite :: FunctionParameterAttribute $mNoReadWrite :: forall {r}. FunctionParameterAttribute -> ((# #) -> r) -> ((# #) -> r) -> r NoReadWrite = FunctionParameterAttribute 7 pattern RuntimeAlignedINTEL :: FunctionParameterAttribute pattern $bRuntimeAlignedINTEL :: FunctionParameterAttribute $mRuntimeAlignedINTEL :: forall {r}. FunctionParameterAttribute -> ((# #) -> r) -> ((# #) -> r) -> r RuntimeAlignedINTEL = FunctionParameterAttribute 5940 toName :: IsString a => FunctionParameterAttribute -> a toName :: forall a. IsString a => FunctionParameterAttribute -> a toName FunctionParameterAttribute x = case FunctionParameterAttribute x of FunctionParameterAttribute Zext -> a "Zext" FunctionParameterAttribute Sext -> a "Sext" FunctionParameterAttribute ByVal -> a "ByVal" FunctionParameterAttribute Sret -> a "Sret" FunctionParameterAttribute NoAlias -> a "NoAlias" FunctionParameterAttribute NoCapture -> a "NoCapture" FunctionParameterAttribute NoWrite -> a "NoWrite" FunctionParameterAttribute NoReadWrite -> a "NoReadWrite" FunctionParameterAttribute RuntimeAlignedINTEL -> a "RuntimeAlignedINTEL" FunctionParameterAttribute unknown -> forall a. IsString a => [Char] -> a fromString forall a b. (a -> b) -> a -> b $ [Char] "FunctionParameterAttribute " forall a. [a] -> [a] -> [a] ++ forall a. Show a => a -> [Char] show FunctionParameterAttribute unknown instance Show FunctionParameterAttribute where show :: FunctionParameterAttribute -> [Char] show = forall a. IsString a => FunctionParameterAttribute -> a toName fromName :: (IsString a, Eq a) => a -> Maybe FunctionParameterAttribute fromName :: forall a. (IsString a, Eq a) => a -> Maybe FunctionParameterAttribute fromName a x = case a x of a "Zext" -> forall a. a -> Maybe a Just FunctionParameterAttribute Zext a "Sext" -> forall a. a -> Maybe a Just FunctionParameterAttribute Sext a "ByVal" -> forall a. a -> Maybe a Just FunctionParameterAttribute ByVal a "Sret" -> forall a. a -> Maybe a Just FunctionParameterAttribute Sret a "NoAlias" -> forall a. a -> Maybe a Just FunctionParameterAttribute NoAlias a "NoCapture" -> forall a. a -> Maybe a Just FunctionParameterAttribute NoCapture a "NoWrite" -> forall a. a -> Maybe a Just FunctionParameterAttribute NoWrite a "NoReadWrite" -> forall a. a -> Maybe a Just FunctionParameterAttribute NoReadWrite a "RuntimeAlignedINTEL" -> forall a. a -> Maybe a Just FunctionParameterAttribute RuntimeAlignedINTEL a _unknown -> forall a. Maybe a Nothing instance Read FunctionParameterAttribute where readPrec :: ReadPrec FunctionParameterAttribute 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 FunctionParameterAttribute fromName [Char] s