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 { TypeDescription -> Maybe Word32 id :: Maybe Word32 , TypeDescription -> Maybe Op op :: Maybe Enums.Op , TypeDescription -> Maybe Text type_name :: Maybe Text , TypeDescription -> Maybe Text struct_member_name :: Maybe Text , TypeDescription -> StorageClass storage_class :: Enums.StorageClass , TypeDescription -> TypeFlags type_flags :: Enums.TypeFlags , TypeDescription -> Maybe Traits traits :: Maybe Traits , TypeDescription -> Vector TypeDescription members :: Vector TypeDescription } deriving (TypeDescription -> TypeDescription -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: TypeDescription -> TypeDescription -> Bool $c/= :: TypeDescription -> TypeDescription -> Bool == :: TypeDescription -> TypeDescription -> Bool $c== :: TypeDescription -> TypeDescription -> Bool Eq, Int -> TypeDescription -> ShowS [TypeDescription] -> ShowS TypeDescription -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [TypeDescription] -> ShowS $cshowList :: [TypeDescription] -> ShowS show :: TypeDescription -> String $cshow :: TypeDescription -> String showsPrec :: Int -> TypeDescription -> ShowS $cshowsPrec :: Int -> TypeDescription -> ShowS Show, forall x. Rep TypeDescription x -> TypeDescription forall x. TypeDescription -> Rep TypeDescription x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep TypeDescription x -> TypeDescription $cfrom :: forall x. TypeDescription -> Rep TypeDescription x Generic) data Traits = Traits { Traits -> Numeric numeric :: Traits.Numeric , Traits -> Image image :: Traits.Image , Traits -> Array array :: Traits.Array } deriving (Traits -> Traits -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Traits -> Traits -> Bool $c/= :: Traits -> Traits -> Bool == :: Traits -> Traits -> Bool $c== :: Traits -> Traits -> Bool Eq, Int -> Traits -> ShowS [Traits] -> ShowS Traits -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Traits] -> ShowS $cshowList :: [Traits] -> ShowS show :: Traits -> String $cshow :: Traits -> String showsPrec :: Int -> Traits -> ShowS $cshowsPrec :: Int -> Traits -> ShowS Show, forall x. Rep Traits x -> Traits forall x. Traits -> Rep Traits x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep Traits x -> Traits $cfrom :: forall x. Traits -> Rep Traits x Generic)