module Language.SpirV.AccessQualifier where
import Data.Word (Word32)
import Language.SpirV.SpirEnum
import qualified Language.SpirV.Capability as Capability
data AccessQualifier =
ReadOnly
| WriteOnly
| ReadWrite
deriving(Read, Show, Eq, Ord)
instance SpirEnum AccessQualifier Word32 where
toWord ReadOnly = 0
toWord WriteOnly = 1
toWord ReadWrite = 2
fromWord 0 = Just ReadOnly
fromWord 1 = Just WriteOnly
fromWord 2 = Just ReadWrite
fromWord _ = Nothing
requiredCapabilities ReadOnly = [Capability.Kernel]
requiredCapabilities WriteOnly = [Capability.Kernel]
requiredCapabilities ReadWrite = [Capability.Kernel]