{-# LANGUAGE MultiParamTypeClasses #-} 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 _ = []