spirv-reflect-types-0.1: lib/Data/SpirV/Reflect/TypeDescription.hs
module Data.SpirV.Reflect.TypeDescription where
import Data.Text (Text)
import Data.Vector (Vector)
import GHC.Generics (Generic)
import Data.Word (Word32)
import Data.SpirV.Reflect.Enums qualified as Enums
import Data.SpirV.Reflect.Traits qualified as Traits
data TypeDescription = TypeDescription
{ id :: Maybe Word32
, op :: Maybe Enums.Op
, type_name :: Maybe Text
, struct_member_name :: Maybe Text
, storage_class :: Enums.StorageClass
, type_flags :: Enums.TypeFlags
, traits :: Maybe Traits
, members :: Vector TypeDescription
}
deriving (Eq, Show, Generic)
data Traits = Traits
{ numeric :: Traits.Numeric
, image :: Traits.Image
, array :: Traits.Array
}
deriving (Eq, Show, Generic)