module Language.SpirV.FunctionControl where
import Data.Word (Word32)
import Language.SpirV.SpirEnum
import qualified Language.SpirV.Capability as Capability
data FunctionControl =
None
| Inline
| DontInline
| Pure
| Const
deriving(Read, Show, Eq, Ord)
instance SpirEnum FunctionControl Word32 where
toWord None = 0
toWord Inline = 1
toWord DontInline = 2
toWord Pure = 4
toWord Const = 8
fromWord 0 = Just None
fromWord 1 = Just Inline
fromWord 2 = Just DontInline
fromWord 4 = Just Pure
fromWord 8 = Just Const
fromWord _ = Nothing
requiredCapabilities _ = []