{-# LINE 1 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# LINE 2 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
module Graphics.Vulkan.Types.Struct.AllocationCallbacks
(VkAllocationCallbacks(..)) 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.Funcpointers (PFN_vkAllocationFunction,
PFN_vkFreeFunction,
PFN_vkInternalAllocationNotification,
PFN_vkInternalFreeNotification,
PFN_vkReallocationFunction)
import System.IO.Unsafe (unsafeDupablePerformIO)
data VkAllocationCallbacks = VkAllocationCallbacks# Addr#
ByteArray#
instance Eq VkAllocationCallbacks where
(VkAllocationCallbacks# a _) == x@(VkAllocationCallbacks# b _)
= EQ == cmpBytes# (sizeOf x) a b
{-# INLINE (==) #-}
instance Ord VkAllocationCallbacks where
(VkAllocationCallbacks# a _) `compare`
x@(VkAllocationCallbacks# b _) = cmpBytes# (sizeOf x) a b
{-# INLINE compare #-}
instance Storable VkAllocationCallbacks where
sizeOf ~_ = (48)
{-# LINE 52 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# INLINE sizeOf #-}
alignment ~_ = (8)
{-# LINE 55 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# INLINE alignment #-}
peek = peekVkData#
{-# INLINE peek #-}
poke = pokeVkData#
{-# INLINE poke #-}
instance VulkanMarshalPrim VkAllocationCallbacks where
unsafeAddr (VkAllocationCallbacks# a _) = a
{-# INLINE unsafeAddr #-}
unsafeByteArray (VkAllocationCallbacks# _ b) = b
{-# INLINE unsafeByteArray #-}
unsafeFromByteArrayOffset off b
= VkAllocationCallbacks# (plusAddr# (byteArrayContents# b) off) b
{-# INLINE unsafeFromByteArrayOffset #-}
instance VulkanMarshal VkAllocationCallbacks where
type StructFields VkAllocationCallbacks =
'["pUserData", "pfnAllocation", "pfnReallocation", "pfnFree", -- ' closing tick for hsc2hs
"pfnInternalAllocation", "pfnInternalFree"]
type CUnionType VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
type ReturnedOnly VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
type StructExtends VkAllocationCallbacks = '[] -- ' closing tick for hsc2hs
instance {-# OVERLAPPING #-}
HasField "pUserData" VkAllocationCallbacks where
type FieldType "pUserData" VkAllocationCallbacks = Ptr Void
type FieldOptional "pUserData" VkAllocationCallbacks = 'True -- ' closing tick for hsc2hs
type FieldOffset "pUserData" VkAllocationCallbacks =
(0)
{-# LINE 90 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
type FieldIsArray "pUserData" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
{-# INLINE fieldOptional #-}
fieldOptional = True
{-# INLINE fieldOffset #-}
fieldOffset
= (0)
{-# LINE 98 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanReadField "pUserData" VkAllocationCallbacks where
{-# NOINLINE getField #-}
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (0))
{-# LINE 105 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# INLINE readField #-}
readField p
= peekByteOff p (0)
{-# LINE 109 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanWriteField "pUserData" VkAllocationCallbacks where
{-# INLINE writeField #-}
writeField p
= pokeByteOff p (0)
{-# LINE 115 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
HasField "pfnAllocation" VkAllocationCallbacks where
type FieldType "pfnAllocation" VkAllocationCallbacks =
PFN_vkAllocationFunction
type FieldOptional "pfnAllocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
type FieldOffset "pfnAllocation" VkAllocationCallbacks =
(8)
{-# LINE 123 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
type FieldIsArray "pfnAllocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
{-# INLINE fieldOptional #-}
fieldOptional = False
{-# INLINE fieldOffset #-}
fieldOffset
= (8)
{-# LINE 131 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanReadField "pfnAllocation" VkAllocationCallbacks where
{-# NOINLINE getField #-}
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (8))
{-# LINE 138 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# INLINE readField #-}
readField p
= peekByteOff p (8)
{-# LINE 142 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanWriteField "pfnAllocation" VkAllocationCallbacks where
{-# INLINE writeField #-}
writeField p
= pokeByteOff p (8)
{-# LINE 148 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
HasField "pfnReallocation" VkAllocationCallbacks where
type FieldType "pfnReallocation" VkAllocationCallbacks =
PFN_vkReallocationFunction
type FieldOptional "pfnReallocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
type FieldOffset "pfnReallocation" VkAllocationCallbacks =
(16)
{-# LINE 156 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
type FieldIsArray "pfnReallocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
{-# INLINE fieldOptional #-}
fieldOptional = False
{-# INLINE fieldOffset #-}
fieldOffset
= (16)
{-# LINE 164 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanReadField "pfnReallocation" VkAllocationCallbacks where
{-# NOINLINE getField #-}
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (16))
{-# LINE 171 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# INLINE readField #-}
readField p
= peekByteOff p (16)
{-# LINE 175 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanWriteField "pfnReallocation" VkAllocationCallbacks where
{-# INLINE writeField #-}
writeField p
= pokeByteOff p (16)
{-# LINE 181 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
HasField "pfnFree" VkAllocationCallbacks where
type FieldType "pfnFree" VkAllocationCallbacks = PFN_vkFreeFunction
type FieldOptional "pfnFree" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
type FieldOffset "pfnFree" VkAllocationCallbacks =
(24)
{-# LINE 188 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
type FieldIsArray "pfnFree" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
{-# INLINE fieldOptional #-}
fieldOptional = False
{-# INLINE fieldOffset #-}
fieldOffset = (24)
{-# LINE 195 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanReadField "pfnFree" VkAllocationCallbacks where
{-# NOINLINE getField #-}
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (24))
{-# LINE 202 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# INLINE readField #-}
readField p
= peekByteOff p (24)
{-# LINE 206 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanWriteField "pfnFree" VkAllocationCallbacks where
{-# INLINE writeField #-}
writeField p
= pokeByteOff p (24)
{-# LINE 212 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
HasField "pfnInternalAllocation" VkAllocationCallbacks where
type FieldType "pfnInternalAllocation" VkAllocationCallbacks =
PFN_vkInternalAllocationNotification
type FieldOptional "pfnInternalAllocation" VkAllocationCallbacks =
'True -- ' closing tick for hsc2hs
type FieldOffset "pfnInternalAllocation" VkAllocationCallbacks =
(32)
{-# LINE 221 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
type FieldIsArray "pfnInternalAllocation" VkAllocationCallbacks =
'False -- ' closing tick for hsc2hs
{-# INLINE fieldOptional #-}
fieldOptional = True
{-# INLINE fieldOffset #-}
fieldOffset
= (32)
{-# LINE 230 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanReadField "pfnInternalAllocation" VkAllocationCallbacks where
{-# NOINLINE getField #-}
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (32))
{-# LINE 237 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# INLINE readField #-}
readField p
= peekByteOff p (32)
{-# LINE 241 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanWriteField "pfnInternalAllocation" VkAllocationCallbacks where
{-# INLINE writeField #-}
writeField p
= pokeByteOff p (32)
{-# LINE 247 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
HasField "pfnInternalFree" VkAllocationCallbacks where
type FieldType "pfnInternalFree" VkAllocationCallbacks =
PFN_vkInternalFreeNotification
type FieldOptional "pfnInternalFree" VkAllocationCallbacks = 'True -- ' closing tick for hsc2hs
type FieldOffset "pfnInternalFree" VkAllocationCallbacks =
(40)
{-# LINE 255 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
type FieldIsArray "pfnInternalFree" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
{-# INLINE fieldOptional #-}
fieldOptional = True
{-# INLINE fieldOffset #-}
fieldOffset
= (40)
{-# LINE 263 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanReadField "pfnInternalFree" VkAllocationCallbacks where
{-# NOINLINE getField #-}
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (40))
{-# LINE 270 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
{-# INLINE readField #-}
readField p
= peekByteOff p (40)
{-# LINE 274 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance {-# OVERLAPPING #-}
CanWriteField "pfnInternalFree" VkAllocationCallbacks where
{-# INLINE writeField #-}
writeField p
= pokeByteOff p (40)
{-# LINE 280 "src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc" #-}
instance Show VkAllocationCallbacks where
showsPrec d x
= showString "VkAllocationCallbacks {" .
showString "pUserData = " .
showsPrec d (getField @"pUserData" x) .
showString ", " .
showString "pfnAllocation = " .
showsPrec d (getField @"pfnAllocation" x) .
showString ", " .
showString "pfnReallocation = " .
showsPrec d (getField @"pfnReallocation" x) .
showString ", " .
showString "pfnFree = " .
showsPrec d (getField @"pfnFree" x) .
showString ", " .
showString "pfnInternalAllocation = " .
showsPrec d (getField @"pfnInternalAllocation" x) .
showString ", " .
showString "pfnInternalFree = " .
showsPrec d (getField @"pfnInternalFree" x) .
showChar '}'