module Language.SpirV.Scope where
import Data.Word (Word32)
import Language.SpirV.SpirEnum
import qualified Language.SpirV.Capability as Capability
data Scope =
CrossDevice
| Device
| Workgroup
| Subgroup
| Invocation
deriving(Read, Show, Eq, Ord)
instance SpirEnum Scope Word32 where
toWord CrossDevice = 0
toWord Device = 1
toWord Workgroup = 2
toWord Subgroup = 3
toWord Invocation = 4
fromWord 0 = Just CrossDevice
fromWord 1 = Just Device
fromWord 2 = Just Workgroup
fromWord 3 = Just Subgroup
fromWord 4 = Just Invocation
fromWord _ = Nothing
requiredCapabilities _ = []