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)