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

{-# LINE 2 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT
       (VkDebugUtilsMessengerCallbackDataEXT(..)) where
import           Foreign.Storable                                         (Storable (..))
import           GHC.Base                                                 (Addr#,
                                                                           ByteArray#,
                                                                           byteArrayContents#,
                                                                           plusAddr#)
import           Graphics.Vulkan.Marshal
import           Graphics.Vulkan.Marshal.Internal
import           Graphics.Vulkan.Types.Bitmasks                           (VkDebugUtilsMessengerCallbackDataFlagsEXT)
import           Graphics.Vulkan.Types.Enum.StructureType                 (VkStructureType)
import           Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT          (VkDebugUtilsLabelEXT)
import           Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT (VkDebugUtilsObjectNameInfoEXT)
import           System.IO.Unsafe                                         (unsafeDupablePerformIO)

-- | > typedef struct VkDebugUtilsMessengerCallbackDataEXT {
--   >     VkStructureType sType;
--   >     const void*                                                        pNext;
--   >     VkDebugUtilsMessengerCallbackDataFlagsEXT                          flags;
--   >     const char*                                  pMessageIdName;
--   >     int32_t                                                            messageIdNumber;
--   >     const char*                                                  pMessage;
--   >     uint32_t                                                           queueLabelCount;
--   >     VkDebugUtilsLabelEXT*  pQueueLabels;
--   >     uint32_t                                                           cmdBufLabelCount;
--   >     VkDebugUtilsLabelEXT* pCmdBufLabels;
--   >     uint32_t                                                                           objectCount;
--   >     VkDebugUtilsObjectNameInfoEXT*             pObjects;
--   > } VkDebugUtilsMessengerCallbackDataEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsMessengerCallbackDataEXT VkDebugUtilsMessengerCallbackDataEXT registry at www.khronos.org>
data VkDebugUtilsMessengerCallbackDataEXT = VkDebugUtilsMessengerCallbackDataEXT# Addr#
                                                                                  ByteArray#

instance Eq VkDebugUtilsMessengerCallbackDataEXT where
        (VkDebugUtilsMessengerCallbackDataEXT# a _) ==
          x@(VkDebugUtilsMessengerCallbackDataEXT# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkDebugUtilsMessengerCallbackDataEXT where
        (VkDebugUtilsMessengerCallbackDataEXT# a _) `compare`
          x@(VkDebugUtilsMessengerCallbackDataEXT# b _)
          = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkDebugUtilsMessengerCallbackDataEXT where
        sizeOf ~_
          = (96)
{-# LINE 61 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_
          = (8)
{-# LINE 65 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkDebugUtilsMessengerCallbackDataEXT
         where
        unsafeAddr (VkDebugUtilsMessengerCallbackDataEXT# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkDebugUtilsMessengerCallbackDataEXT# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkDebugUtilsMessengerCallbackDataEXT#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDebugUtilsMessengerCallbackDataEXT where
        type StructFields VkDebugUtilsMessengerCallbackDataEXT =
             '["sType", "pNext", "flags", "pMessageIdName", "messageIdNumber", -- ' closing tick for hsc2hs
               "pMessage", "queueLabelCount", "pQueueLabels", "cmdBufLabelCount",
               "pCmdBufLabels", "objectCount", "pObjects"]
        type CUnionType VkDebugUtilsMessengerCallbackDataEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDebugUtilsMessengerCallbackDataEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDebugUtilsMessengerCallbackDataEXT = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "sType" VkDebugUtilsMessengerCallbackDataEXT where
        type FieldType "sType" VkDebugUtilsMessengerCallbackDataEXT =
             VkStructureType
        type FieldOptional "sType" VkDebugUtilsMessengerCallbackDataEXT =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkDebugUtilsMessengerCallbackDataEXT =
             (0)
{-# LINE 106 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "sType" VkDebugUtilsMessengerCallbackDataEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 115 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkDebugUtilsMessengerCallbackDataEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 122 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 126 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkDebugUtilsMessengerCallbackDataEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 132 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pNext" VkDebugUtilsMessengerCallbackDataEXT where
        type FieldType "pNext" VkDebugUtilsMessengerCallbackDataEXT =
             Ptr Void
        type FieldOptional "pNext" VkDebugUtilsMessengerCallbackDataEXT =
             'True -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkDebugUtilsMessengerCallbackDataEXT =
             (8)
{-# LINE 141 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "pNext" VkDebugUtilsMessengerCallbackDataEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 150 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkDebugUtilsMessengerCallbackDataEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 157 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 161 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkDebugUtilsMessengerCallbackDataEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 167 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "flags" VkDebugUtilsMessengerCallbackDataEXT where
        type FieldType "flags" VkDebugUtilsMessengerCallbackDataEXT =
             VkDebugUtilsMessengerCallbackDataFlagsEXT
        type FieldOptional "flags" VkDebugUtilsMessengerCallbackDataEXT =
             'True -- ' closing tick for hsc2hs
        type FieldOffset "flags" VkDebugUtilsMessengerCallbackDataEXT =
             (16)
{-# LINE 176 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "flags" VkDebugUtilsMessengerCallbackDataEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 185 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "flags" VkDebugUtilsMessengerCallbackDataEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 192 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 196 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "flags" VkDebugUtilsMessengerCallbackDataEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 202 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pMessageIdName" VkDebugUtilsMessengerCallbackDataEXT
         where
        type FieldType "pMessageIdName"
               VkDebugUtilsMessengerCallbackDataEXT
             = CString
        type FieldOptional "pMessageIdName"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "pMessageIdName"
               VkDebugUtilsMessengerCallbackDataEXT
             =
             (24)
{-# LINE 216 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "pMessageIdName"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (24)
{-# LINE 226 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pMessageIdName" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 234 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (24)
{-# LINE 238 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pMessageIdName" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 245 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "messageIdNumber" VkDebugUtilsMessengerCallbackDataEXT
         where
        type FieldType "messageIdNumber"
               VkDebugUtilsMessengerCallbackDataEXT
             = Int32
        type FieldOptional "messageIdNumber"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "messageIdNumber"
               VkDebugUtilsMessengerCallbackDataEXT
             =
             (32)
{-# LINE 259 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "messageIdNumber"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (32)
{-# LINE 269 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "messageIdNumber" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 277 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (32)
{-# LINE 281 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "messageIdNumber"
           VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 289 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pMessage" VkDebugUtilsMessengerCallbackDataEXT where
        type FieldType "pMessage" VkDebugUtilsMessengerCallbackDataEXT =
             CString
        type FieldOptional "pMessage" VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pMessage" VkDebugUtilsMessengerCallbackDataEXT =
             (40)
{-# LINE 298 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "pMessage" VkDebugUtilsMessengerCallbackDataEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (40)
{-# LINE 307 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pMessage" VkDebugUtilsMessengerCallbackDataEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 314 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (40)
{-# LINE 318 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pMessage" VkDebugUtilsMessengerCallbackDataEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 324 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "queueLabelCount" VkDebugUtilsMessengerCallbackDataEXT
         where
        type FieldType "queueLabelCount"
               VkDebugUtilsMessengerCallbackDataEXT
             = Word32
        type FieldOptional "queueLabelCount"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "queueLabelCount"
               VkDebugUtilsMessengerCallbackDataEXT
             =
             (48)
{-# LINE 338 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "queueLabelCount"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (48)
{-# LINE 348 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "queueLabelCount" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (48))
{-# LINE 356 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (48)
{-# LINE 360 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "queueLabelCount"
           VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (48)
{-# LINE 368 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT where
        type FieldType "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT
             = Ptr VkDebugUtilsLabelEXT
        type FieldOptional "pQueueLabels"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "pQueueLabels"
               VkDebugUtilsMessengerCallbackDataEXT
             =
             (56)
{-# LINE 380 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "pQueueLabels"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (56)
{-# LINE 390 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (56))
{-# LINE 398 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (56)
{-# LINE 402 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (56)
{-# LINE 409 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "cmdBufLabelCount" VkDebugUtilsMessengerCallbackDataEXT
         where
        type FieldType "cmdBufLabelCount"
               VkDebugUtilsMessengerCallbackDataEXT
             = Word32
        type FieldOptional "cmdBufLabelCount"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "cmdBufLabelCount"
               VkDebugUtilsMessengerCallbackDataEXT
             =
             (64)
{-# LINE 423 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "cmdBufLabelCount"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (64)
{-# LINE 433 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "cmdBufLabelCount"
           VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (64))
{-# LINE 442 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (64)
{-# LINE 446 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "cmdBufLabelCount"
           VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (64)
{-# LINE 454 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT where
        type FieldType "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT
             = Ptr VkDebugUtilsLabelEXT
        type FieldOptional "pCmdBufLabels"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "pCmdBufLabels"
               VkDebugUtilsMessengerCallbackDataEXT
             =
             (72)
{-# LINE 466 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "pCmdBufLabels"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (72)
{-# LINE 476 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (72))
{-# LINE 484 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (72)
{-# LINE 488 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (72)
{-# LINE 495 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "objectCount" VkDebugUtilsMessengerCallbackDataEXT where
        type FieldType "objectCount" VkDebugUtilsMessengerCallbackDataEXT =
             Word32
        type FieldOptional "objectCount"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "objectCount" VkDebugUtilsMessengerCallbackDataEXT
             =
             (80)
{-# LINE 506 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "objectCount"
               VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (80)
{-# LINE 516 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "objectCount" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (80))
{-# LINE 524 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (80)
{-# LINE 528 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "objectCount" VkDebugUtilsMessengerCallbackDataEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (80)
{-# LINE 535 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pObjects" VkDebugUtilsMessengerCallbackDataEXT where
        type FieldType "pObjects" VkDebugUtilsMessengerCallbackDataEXT =
             Ptr VkDebugUtilsObjectNameInfoEXT
        type FieldOptional "pObjects" VkDebugUtilsMessengerCallbackDataEXT
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pObjects" VkDebugUtilsMessengerCallbackDataEXT =
             (88)
{-# LINE 544 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}
        type FieldIsArray "pObjects" VkDebugUtilsMessengerCallbackDataEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (88)
{-# LINE 553 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pObjects" VkDebugUtilsMessengerCallbackDataEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (88))
{-# LINE 560 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (88)
{-# LINE 564 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pObjects" VkDebugUtilsMessengerCallbackDataEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (88)
{-# LINE 570 "src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc" #-}

instance Show VkDebugUtilsMessengerCallbackDataEXT where
        showsPrec d x
          = showString "VkDebugUtilsMessengerCallbackDataEXT {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "flags = " .
                            showsPrec d (getField @"flags" x) .
                              showString ", " .
                                showString "pMessageIdName = " .
                                  showsPrec d (getField @"pMessageIdName" x) .
                                    showString ", " .
                                      showString "messageIdNumber = " .
                                        showsPrec d (getField @"messageIdNumber" x) .
                                          showString ", " .
                                            showString "pMessage = " .
                                              showsPrec d (getField @"pMessage" x) .
                                                showString ", " .
                                                  showString "queueLabelCount = " .
                                                    showsPrec d (getField @"queueLabelCount" x) .
                                                      showString ", " .
                                                        showString "pQueueLabels = " .
                                                          showsPrec d (getField @"pQueueLabels" x) .
                                                            showString ", " .
                                                              showString "cmdBufLabelCount = " .
                                                                showsPrec d
                                                                  (getField @"cmdBufLabelCount" x)
                                                                  .
                                                                  showString ", " .
                                                                    showString "pCmdBufLabels = " .
                                                                      showsPrec d
                                                                        (getField @"pCmdBufLabels"
                                                                           x)
                                                                        .
                                                                        showString ", " .
                                                                          showString
                                                                            "objectCount = "
                                                                            .
                                                                            showsPrec d
                                                                              (getField
                                                                                 @"objectCount"
                                                                                 x)
                                                                              .
                                                                              showString ", " .
                                                                                showString
                                                                                  "pObjects = "
                                                                                  .
                                                                                  showsPrec d
                                                                                    (getField
                                                                                       @"pObjects"
                                                                                       x)
                                                                                    . showChar '}'