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

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

{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleContexts      #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PatternSynonyms       #-}
{-# LANGUAGE ScopedTypeVariables   #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
{-# LANGUAGE UndecidableInstances  #-}
module Graphics.Vulkan.Types.Struct.Debug
       (VkDebugMarkerMarkerInfoEXT(..),
        VkDebugMarkerObjectNameInfoEXT(..),
        VkDebugMarkerObjectTagInfoEXT(..),
        VkDebugReportCallbackCreateInfoEXT(..),
        VkDebugUtilsObjectTagInfoEXT(..))
       where
import           Foreign.Storable                                (Storable (..))
import           GHC.Base                                        (Addr#,
                                                                  ByteArray#,
                                                                  Proxy#,
                                                                  byteArrayContents#,
                                                                  plusAddr#,
                                                                  proxy#)
import           GHC.TypeLits                                    (KnownNat,
                                                                  natVal') -- ' closing tick for hsc2hs
import           Graphics.Vulkan.Marshal
import           Graphics.Vulkan.Marshal.Internal
import           Graphics.Vulkan.Types.Enum.Debug                (VkDebugReportFlagsEXT,
                                                                  VkDebugReportObjectTypeEXT)
import           Graphics.Vulkan.Types.Enum.Object               (VkObjectType)
import           Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
import           Graphics.Vulkan.Types.Funcpointers              (PFN_vkDebugReportCallbackEXT)
import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
import           System.IO.Unsafe                                (unsafeDupablePerformIO)

-- | > typedef struct VkDebugMarkerMarkerInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     const char* pMarkerName;
--   >     float            color[4];
--   > } VkDebugMarkerMarkerInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugMarkerMarkerInfoEXT VkDebugMarkerMarkerInfoEXT registry at www.khronos.org>
data VkDebugMarkerMarkerInfoEXT = VkDebugMarkerMarkerInfoEXT# Addr#
                                                              ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkDebugMarkerMarkerInfoEXT where
        sizeOf ~_ = (40)
{-# LINE 66 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDebugMarkerMarkerInfoEXT where
        type StructFields VkDebugMarkerMarkerInfoEXT =
             '["sType", "pNext", "pMarkerName", "color"] -- ' closing tick for hsc2hs
        type CUnionType VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDebugMarkerMarkerInfoEXT = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "pMarkerName" VkDebugMarkerMarkerInfoEXT where
        type FieldType "pMarkerName" VkDebugMarkerMarkerInfoEXT = CString
        type FieldOptional "pMarkerName" VkDebugMarkerMarkerInfoEXT =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "pMarkerName" VkDebugMarkerMarkerInfoEXT =
             (16)
{-# LINE 170 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "pMarkerName" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "pMarkerName" VkDebugMarkerMarkerInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 185 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pMarkerName" VkDebugMarkerMarkerInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 195 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "color" VkDebugMarkerMarkerInfoEXT where
        type FieldType "color" VkDebugMarkerMarkerInfoEXT =
             Float
{-# LINE 200 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldOptional "color" VkDebugMarkerMarkerInfoEXT = 'True -- ' closing tick for hsc2hs
        type FieldOffset "color" VkDebugMarkerMarkerInfoEXT =
             (24)
{-# LINE 203 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "color" VkDebugMarkerMarkerInfoEXT = 'True -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

instance {-# OVERLAPPING #-}
         (KnownNat idx,
          IndexInBounds "color" idx VkDebugMarkerMarkerInfoEXT) =>
         CanReadFieldArray "color" idx VkDebugMarkerMarkerInfoEXT
         where
        {-# SPECIALISE instance
                       CanReadFieldArray "color" 0 VkDebugMarkerMarkerInfoEXT #-}

        {-# SPECIALISE instance
                       CanReadFieldArray "color" 1 VkDebugMarkerMarkerInfoEXT #-}

        {-# SPECIALISE instance
                       CanReadFieldArray "color" 2 VkDebugMarkerMarkerInfoEXT #-}

        {-# SPECIALISE instance
                       CanReadFieldArray "color" 3 VkDebugMarkerMarkerInfoEXT #-}
        type FieldArrayLength "color" VkDebugMarkerMarkerInfoEXT = 4

        {-# INLINE fieldArrayLength #-}
        fieldArrayLength = 4

        {-# INLINE getFieldArray #-}
        getFieldArray = f
          where {-# NOINLINE f #-}
                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
                off
                  = (24) +
{-# LINE 239 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                      sizeOf (undefined :: Float) *
{-# LINE 240 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                        fromInteger (natVal' (proxy# :: Proxy# idx)) -- ' closing tick for hsc2hs

        {-# INLINE readFieldArray #-}
        readFieldArray p
          = peekByteOff p
              ((24) +
{-# LINE 246 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                 sizeOf (undefined :: Float) *
{-# LINE 247 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                   fromInteger (natVal' (proxy# :: Proxy# idx))) -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         (KnownNat idx,
          IndexInBounds "color" idx VkDebugMarkerMarkerInfoEXT) =>
         CanWriteFieldArray "color" idx VkDebugMarkerMarkerInfoEXT
         where
        {-# SPECIALISE instance
                       CanWriteFieldArray "color" 0 VkDebugMarkerMarkerInfoEXT #-}

        {-# SPECIALISE instance
                       CanWriteFieldArray "color" 1 VkDebugMarkerMarkerInfoEXT #-}

        {-# SPECIALISE instance
                       CanWriteFieldArray "color" 2 VkDebugMarkerMarkerInfoEXT #-}

        {-# SPECIALISE instance
                       CanWriteFieldArray "color" 3 VkDebugMarkerMarkerInfoEXT #-}

        {-# INLINE writeFieldArray #-}
        writeFieldArray p
          = pokeByteOff p
              ((24) +
{-# LINE 270 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                 sizeOf (undefined :: Float) *
{-# LINE 271 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
                   fromInteger (natVal' (proxy# :: Proxy# idx))) -- ' closing tick for hsc2hs

instance Show VkDebugMarkerMarkerInfoEXT where
        showsPrec d x
          = showString "VkDebugMarkerMarkerInfoEXT {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "pMarkerName = " .
                            showsPrec d (getField @"pMarkerName" x) .
                              showString ", " .
                                (showString "color = [" .
                                   showsPrec d
                                     (let s = sizeOf
                                                (undefined ::
                                                   FieldType "color" VkDebugMarkerMarkerInfoEXT)
                                          o = fieldOffset @"color" @VkDebugMarkerMarkerInfoEXT
                                          f i
                                            = peekByteOff (unsafePtr x) i ::
                                                IO (FieldType "color" VkDebugMarkerMarkerInfoEXT)
                                        in
                                        unsafeDupablePerformIO . mapM f $
                                          map (\ i -> o + i * s) [0 .. 4 - 1])
                                     . showChar ']')
                                  . showChar '}'

-- | > typedef struct VkDebugMarkerObjectNameInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDebugReportObjectTypeEXT       objectType;
--   >     uint64_t                         object;
--   >     const char* pObjectName;
--   > } VkDebugMarkerObjectNameInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugMarkerObjectNameInfoEXT VkDebugMarkerObjectNameInfoEXT registry at www.khronos.org>
data VkDebugMarkerObjectNameInfoEXT = VkDebugMarkerObjectNameInfoEXT# Addr#
                                                                      ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkDebugMarkerObjectNameInfoEXT where
        sizeOf ~_ = (40)
{-# LINE 327 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDebugMarkerObjectNameInfoEXT where
        type StructFields VkDebugMarkerObjectNameInfoEXT =
             '["sType", "pNext", "objectType", "object", "pObjectName"] -- ' closing tick for hsc2hs
        type CUnionType VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDebugMarkerObjectNameInfoEXT = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "objectType" VkDebugMarkerObjectNameInfoEXT where
        type FieldType "objectType" VkDebugMarkerObjectNameInfoEXT =
             VkDebugReportObjectTypeEXT
        type FieldOptional "objectType" VkDebugMarkerObjectNameInfoEXT =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "objectType" VkDebugMarkerObjectNameInfoEXT =
             (16)
{-# LINE 434 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "objectType" VkDebugMarkerObjectNameInfoEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "objectType" VkDebugMarkerObjectNameInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 450 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "objectType" VkDebugMarkerObjectNameInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 460 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "object" VkDebugMarkerObjectNameInfoEXT where
        type FieldType "object" VkDebugMarkerObjectNameInfoEXT = Word64
        type FieldOptional "object" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "object" VkDebugMarkerObjectNameInfoEXT =
             (24)
{-# LINE 467 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "object" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "object" VkDebugMarkerObjectNameInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 482 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "object" VkDebugMarkerObjectNameInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 492 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pObjectName" VkDebugMarkerObjectNameInfoEXT where
        type FieldType "pObjectName" VkDebugMarkerObjectNameInfoEXT =
             CString
        type FieldOptional "pObjectName" VkDebugMarkerObjectNameInfoEXT =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "pObjectName" VkDebugMarkerObjectNameInfoEXT =
             (32)
{-# LINE 501 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "pObjectName" VkDebugMarkerObjectNameInfoEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "pObjectName" VkDebugMarkerObjectNameInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 517 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pObjectName" VkDebugMarkerObjectNameInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 527 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance Show VkDebugMarkerObjectNameInfoEXT where
        showsPrec d x
          = showString "VkDebugMarkerObjectNameInfoEXT {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "objectType = " .
                            showsPrec d (getField @"objectType" x) .
                              showString ", " .
                                showString "object = " .
                                  showsPrec d (getField @"object" x) .
                                    showString ", " .
                                      showString "pObjectName = " .
                                        showsPrec d (getField @"pObjectName" x) . showChar '}'

-- | > typedef struct VkDebugMarkerObjectTagInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDebugReportObjectTypeEXT       objectType;
--   >     uint64_t                         object;
--   >     uint64_t                         tagName;
--   >     size_t                           tagSize;
--   >     const void*        pTag;
--   > } VkDebugMarkerObjectTagInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugMarkerObjectTagInfoEXT VkDebugMarkerObjectTagInfoEXT registry at www.khronos.org>
data VkDebugMarkerObjectTagInfoEXT = VkDebugMarkerObjectTagInfoEXT# Addr#
                                                                    ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkDebugMarkerObjectTagInfoEXT where
        sizeOf ~_ = (56)
{-# LINE 575 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDebugMarkerObjectTagInfoEXT where
        type StructFields VkDebugMarkerObjectTagInfoEXT =
             '["sType", "pNext", "objectType", "object", "tagName", "tagSize", -- ' closing tick for hsc2hs
               "pTag"]
        type CUnionType VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDebugMarkerObjectTagInfoEXT = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "objectType" VkDebugMarkerObjectTagInfoEXT where
        type FieldType "objectType" VkDebugMarkerObjectTagInfoEXT =
             VkDebugReportObjectTypeEXT
        type FieldOptional "objectType" VkDebugMarkerObjectTagInfoEXT =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "objectType" VkDebugMarkerObjectTagInfoEXT =
             (16)
{-# LINE 683 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "objectType" VkDebugMarkerObjectTagInfoEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "objectType" VkDebugMarkerObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 699 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "objectType" VkDebugMarkerObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 709 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "object" VkDebugMarkerObjectTagInfoEXT where
        type FieldType "object" VkDebugMarkerObjectTagInfoEXT = Word64
        type FieldOptional "object" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "object" VkDebugMarkerObjectTagInfoEXT =
             (24)
{-# LINE 716 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "object" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "object" VkDebugMarkerObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 731 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "object" VkDebugMarkerObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 741 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "tagName" VkDebugMarkerObjectTagInfoEXT where
        type FieldType "tagName" VkDebugMarkerObjectTagInfoEXT = Word64
        type FieldOptional "tagName" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "tagName" VkDebugMarkerObjectTagInfoEXT =
             (32)
{-# LINE 748 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "tagName" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "tagName" VkDebugMarkerObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 763 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "tagName" VkDebugMarkerObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 773 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "tagSize" VkDebugMarkerObjectTagInfoEXT where
        type FieldType "tagSize" VkDebugMarkerObjectTagInfoEXT = CSize
        type FieldOptional "tagSize" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "tagSize" VkDebugMarkerObjectTagInfoEXT =
             (40)
{-# LINE 780 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "tagSize" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "tagSize" VkDebugMarkerObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 795 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "tagSize" VkDebugMarkerObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 805 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pTag" VkDebugMarkerObjectTagInfoEXT where
        type FieldType "pTag" VkDebugMarkerObjectTagInfoEXT = Ptr Void
        type FieldOptional "pTag" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pTag" VkDebugMarkerObjectTagInfoEXT =
             (48)
{-# LINE 812 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "pTag" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "pTag" VkDebugMarkerObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (48))
{-# LINE 827 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pTag" VkDebugMarkerObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (48)
{-# LINE 837 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance Show VkDebugMarkerObjectTagInfoEXT where
        showsPrec d x
          = showString "VkDebugMarkerObjectTagInfoEXT {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "objectType = " .
                            showsPrec d (getField @"objectType" x) .
                              showString ", " .
                                showString "object = " .
                                  showsPrec d (getField @"object" x) .
                                    showString ", " .
                                      showString "tagName = " .
                                        showsPrec d (getField @"tagName" x) .
                                          showString ", " .
                                            showString "tagSize = " .
                                              showsPrec d (getField @"tagSize" x) .
                                                showString ", " .
                                                  showString "pTag = " .
                                                    showsPrec d (getField @"pTag" x) . showChar '}'

-- | > typedef struct VkDebugReportCallbackCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkDebugReportFlagsEXT            flags;
--   >     PFN_vkDebugReportCallbackEXT     pfnCallback;
--   >     void*            pUserData;
--   > } VkDebugReportCallbackCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugReportCallbackCreateInfoEXT VkDebugReportCallbackCreateInfoEXT registry at www.khronos.org>
data VkDebugReportCallbackCreateInfoEXT = VkDebugReportCallbackCreateInfoEXT# Addr#
                                                                              ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkDebugReportCallbackCreateInfoEXT where
        sizeOf ~_ = (40)
{-# LINE 890 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDebugReportCallbackCreateInfoEXT where
        type StructFields VkDebugReportCallbackCreateInfoEXT =
             '["sType", "pNext", "flags", "pfnCallback", "pUserData"] -- ' closing tick for hsc2hs
        type CUnionType VkDebugReportCallbackCreateInfoEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDebugReportCallbackCreateInfoEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDebugReportCallbackCreateInfoEXT =
             '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "pfnCallback" VkDebugReportCallbackCreateInfoEXT where
        type FieldType "pfnCallback" VkDebugReportCallbackCreateInfoEXT =
             PFN_vkDebugReportCallbackEXT
        type FieldOptional "pfnCallback" VkDebugReportCallbackCreateInfoEXT
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pfnCallback" VkDebugReportCallbackCreateInfoEXT =
             (24)
{-# LINE 1038 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "pfnCallback" VkDebugReportCallbackCreateInfoEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "pfnCallback" VkDebugReportCallbackCreateInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 1054 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pfnCallback" VkDebugReportCallbackCreateInfoEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 1065 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pUserData" VkDebugReportCallbackCreateInfoEXT where
        type FieldType "pUserData" VkDebugReportCallbackCreateInfoEXT =
             Ptr Void
        type FieldOptional "pUserData" VkDebugReportCallbackCreateInfoEXT =
             'True -- ' closing tick for hsc2hs
        type FieldOffset "pUserData" VkDebugReportCallbackCreateInfoEXT =
             (32)
{-# LINE 1074 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "pUserData" VkDebugReportCallbackCreateInfoEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

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

instance {-# OVERLAPPING #-}
         CanReadField "pUserData" VkDebugReportCallbackCreateInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 1090 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pUserData" VkDebugReportCallbackCreateInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 1100 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance Show VkDebugReportCallbackCreateInfoEXT where
        showsPrec d x
          = showString "VkDebugReportCallbackCreateInfoEXT {" .
              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 "pfnCallback = " .
                                  showsPrec d (getField @"pfnCallback" x) .
                                    showString ", " .
                                      showString "pUserData = " .
                                        showsPrec d (getField @"pUserData" x) . showChar '}'

-- | > typedef struct VkDebugUtilsObjectTagInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                            pNext;
--   >     VkObjectType                           objectType;
--   >     uint64_t                               objectHandle;
--   >     uint64_t                               tagName;
--   >     size_t                                 tagSize;
--   >     const void*              pTag;
--   > } VkDebugUtilsObjectTagInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsObjectTagInfoEXT VkDebugUtilsObjectTagInfoEXT registry at www.khronos.org>
data VkDebugUtilsObjectTagInfoEXT = VkDebugUtilsObjectTagInfoEXT# Addr#
                                                                  ByteArray#

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

        {-# INLINE (==) #-}

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

        {-# INLINE compare #-}

instance Storable VkDebugUtilsObjectTagInfoEXT where
        sizeOf ~_ = (56)
{-# LINE 1148 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

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

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

        {-# INLINE poke #-}

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

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

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

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkDebugUtilsObjectTagInfoEXT where
        type StructFields VkDebugUtilsObjectTagInfoEXT =
             '["sType", "pNext", "objectType", "objectHandle", "tagName", -- ' closing tick for hsc2hs
               "tagSize", "pTag"]
        type CUnionType VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkDebugUtilsObjectTagInfoEXT = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

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

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

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

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

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

instance {-# OVERLAPPING #-}
         HasField "objectType" VkDebugUtilsObjectTagInfoEXT where
        type FieldType "objectType" VkDebugUtilsObjectTagInfoEXT =
             VkObjectType
        type FieldOptional "objectType" VkDebugUtilsObjectTagInfoEXT =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "objectType" VkDebugUtilsObjectTagInfoEXT =
             (16)
{-# LINE 1256 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "objectType" VkDebugUtilsObjectTagInfoEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "objectType" VkDebugUtilsObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 1272 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "objectType" VkDebugUtilsObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 1282 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "objectHandle" VkDebugUtilsObjectTagInfoEXT where
        type FieldType "objectHandle" VkDebugUtilsObjectTagInfoEXT = Word64
        type FieldOptional "objectHandle" VkDebugUtilsObjectTagInfoEXT =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "objectHandle" VkDebugUtilsObjectTagInfoEXT =
             (24)
{-# LINE 1290 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "objectHandle" VkDebugUtilsObjectTagInfoEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "objectHandle" VkDebugUtilsObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 1306 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "objectHandle" VkDebugUtilsObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 1316 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "tagName" VkDebugUtilsObjectTagInfoEXT where
        type FieldType "tagName" VkDebugUtilsObjectTagInfoEXT = Word64
        type FieldOptional "tagName" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "tagName" VkDebugUtilsObjectTagInfoEXT =
             (32)
{-# LINE 1323 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "tagName" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "tagName" VkDebugUtilsObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 1338 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "tagName" VkDebugUtilsObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 1348 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "tagSize" VkDebugUtilsObjectTagInfoEXT where
        type FieldType "tagSize" VkDebugUtilsObjectTagInfoEXT = CSize
        type FieldOptional "tagSize" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "tagSize" VkDebugUtilsObjectTagInfoEXT =
             (40)
{-# LINE 1355 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "tagSize" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "tagSize" VkDebugUtilsObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 1370 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "tagSize" VkDebugUtilsObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 1380 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pTag" VkDebugUtilsObjectTagInfoEXT where
        type FieldType "pTag" VkDebugUtilsObjectTagInfoEXT = Ptr Void
        type FieldOptional "pTag" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pTag" VkDebugUtilsObjectTagInfoEXT =
             (48)
{-# LINE 1387 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}
        type FieldIsArray "pTag" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

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

instance {-# OVERLAPPING #-}
         CanReadField "pTag" VkDebugUtilsObjectTagInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (48))
{-# LINE 1402 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

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

instance {-# OVERLAPPING #-}
         CanWriteField "pTag" VkDebugUtilsObjectTagInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (48)
{-# LINE 1412 "src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc" #-}

instance Show VkDebugUtilsObjectTagInfoEXT where
        showsPrec d x
          = showString "VkDebugUtilsObjectTagInfoEXT {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "objectType = " .
                            showsPrec d (getField @"objectType" x) .
                              showString ", " .
                                showString "objectHandle = " .
                                  showsPrec d (getField @"objectHandle" x) .
                                    showString ", " .
                                      showString "tagName = " .
                                        showsPrec d (getField @"tagName" x) .
                                          showString ", " .
                                            showString "tagSize = " .
                                              showsPrec d (getField @"tagSize" x) .
                                                showString ", " .
                                                  showString "pTag = " .
                                                    showsPrec d (getField @"pTag" x) . showChar '}'