module Data.SpirV.Reflect.InterfaceVariable ( InterfaceVariable(..) , WordOffset(..) ) where import Data.Text (Text) import Data.Vector (Vector) import Data.Word (Word32) import GHC.Generics (Generic) import Data.SpirV.Reflect.Enums qualified as Enums import Data.SpirV.Reflect.Traits qualified as Traits import Data.SpirV.Reflect.TypeDescription (TypeDescription) data InterfaceVariable = InterfaceVariable { spirv_id :: Maybe Word32 , name :: Maybe Text , location :: Word32 , storage_class :: Enums.StorageClass , semantic :: Maybe Text , decoration_flags :: Enums.DecorationFlags , built_in :: Enums.BuiltIn , numeric :: Traits.Numeric , array :: Traits.Array , members :: Vector TypeDescription , format :: Enums.Format , type_description :: Maybe TypeDescription , word_offset :: WordOffset } deriving (Eq, Show, Generic) newtype WordOffset = WordOffset { location :: Word32 } deriving (Eq, Show, Generic)