spirv-enum-0.1.0.0: src/Data/SpirV/Enum/FunctionParameterAttribute.hs
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TypeSynonymInstances #-}
module Data.SpirV.Enum.FunctionParameterAttribute where
import Data.Int (Int32)
import Foreign.Storable (Storable)
newtype FunctionParameterAttribute = FunctionParameterAttribute Int32
deriving newtype (Eq, Ord, Storable)
instance Show FunctionParameterAttribute where
showsPrec p (FunctionParameterAttribute v) = case v of
0 -> showString "Zext"
1 -> showString "Sext"
2 -> showString "ByVal"
3 -> showString "Sret"
4 -> showString "NoAlias"
5 -> showString "NoCapture"
6 -> showString "NoWrite"
7 -> showString "NoReadWrite"
5940 -> showString "RuntimeAlignedINTEL"
x -> showParen (p > 10) $ showString "FunctionParameterAttribute " . showsPrec (p + 1) x
pattern Zext :: FunctionParameterAttribute
pattern Zext = FunctionParameterAttribute 0
pattern Sext :: FunctionParameterAttribute
pattern Sext = FunctionParameterAttribute 1
pattern ByVal :: FunctionParameterAttribute
pattern ByVal = FunctionParameterAttribute 2
pattern Sret :: FunctionParameterAttribute
pattern Sret = FunctionParameterAttribute 3
pattern NoAlias :: FunctionParameterAttribute
pattern NoAlias = FunctionParameterAttribute 4
pattern NoCapture :: FunctionParameterAttribute
pattern NoCapture = FunctionParameterAttribute 5
pattern NoWrite :: FunctionParameterAttribute
pattern NoWrite = FunctionParameterAttribute 6
pattern NoReadWrite :: FunctionParameterAttribute
pattern NoReadWrite = FunctionParameterAttribute 7
pattern RuntimeAlignedINTEL :: FunctionParameterAttribute
pattern RuntimeAlignedINTEL = FunctionParameterAttribute 5940