{-# LINE 1 "src-gen/Graphics/Vulkan/Types/Struct/Base.hsc" #-}


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Base
       (VkBaseInStructure, VkBaseOutStructure) where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)

-- | > typedef struct VkBaseInStructure {
--   >     VkStructureType sType;
--   >     const struct VkBaseInStructure* pNext;
--   > } VkBaseInStructure;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBaseInStructure VkBaseInStructure registry at www.khronos.org>
type VkBaseInStructure = VkStruct VkBaseInStructure' -- ' closing tick for hsc2hs

data VkBaseInStructure' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBaseInStructure where
    type StructRep VkBaseInStructure =
         'StructMeta "VkBaseInStructure" VkBaseInStructure  -- ' closing tick for hsc2hs
                                                           (16)
{-# LINE 28 "src-gen/Graphics/Vulkan/Types/Struct/Base.hsc" #-}
           8
{-# LINE 29 "src-gen/Graphics/Vulkan/Types/Struct/Base.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 31 "src-gen/Graphics/Vulkan/Types/Struct/Base.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr VkBaseInStructure) 'False
                                                                (8)
{-# LINE 36 "src-gen/Graphics/Vulkan/Types/Struct/Base.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkBaseOutStructure {
--   >     VkStructureType sType;
--   >     struct VkBaseOutStructure* pNext;
--   > } VkBaseOutStructure;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBaseOutStructure VkBaseOutStructure registry at www.khronos.org>
type VkBaseOutStructure = VkStruct VkBaseOutStructure' -- ' closing tick for hsc2hs

data VkBaseOutStructure' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBaseOutStructure where
    type StructRep VkBaseOutStructure =
         'StructMeta "VkBaseOutStructure" VkBaseOutStructure  -- ' closing tick for hsc2hs
                                                             (16)
{-# LINE 57 "src-gen/Graphics/Vulkan/Types/Struct/Base.hsc" #-}
           8
{-# LINE 58 "src-gen/Graphics/Vulkan/Types/Struct/Base.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 60 "src-gen/Graphics/Vulkan/Types/Struct/Base.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr VkBaseOutStructure) 'False
                                                                 (8)
{-# LINE 65 "src-gen/Graphics/Vulkan/Types/Struct/Base.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs