hs-bindgen-1.0.0.0: test-artefacts/fixtures/macros/wrong_source_location.2.raw/Example.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module Example
( Example.nestedUnnamed
, Example.UU1_fieldY(..)
, Example.UU1(..)
, Example.UU2_fieldY(..)
, Example.UU2(..)
, Example.twoUntaggedStructs
, Example.VV1_fieldA(..)
, Example.VV1_fieldB(..)
, Example.VV1(..)
, Example.VV2_fieldA(..)
, Example.VV2_fieldB(..)
, Example.VV2(..)
)
where
import qualified HsBindgen.Runtime.HasCField as HasCField
import qualified HsBindgen.Runtime.Macro as Macro
import qualified HsBindgen.Runtime.Marshal as Marshal
import qualified HsBindgen.Runtime.Struct as Struct
import qualified HsBindgen.Runtime.Support as BG
import qualified HsBindgen.Runtime.Support.CompatHasField as BG.CompatHasField
import Prelude ((<*>), (>>), Eq, Int, Show, String, pure, type (~))
{-| __C declaration:__ @macro NestedUnnamed@
__defined at:__ @macros\/wrong_source_location.h 12:9@
__exported by:__ @macros\/wrong_source_location.h@
-}
nestedUnnamed :: Macro.Raw String
nestedUnnamed =
Macro.functionLike "NestedUnnamed" ["t1", "n1", "t2"] [ "typedef"
, "t1"
, "{"
, "t2"
, "{"
, "int"
, "fieldX"
, ";"
, "}"
, "fieldY"
, ";"
, "}"
, "n1"
, ";"
]
{-| __C declaration:__ @struct \@UU1_fieldY@
__defined at:__ @macros\/wrong_source_location.h 19:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data UU1_fieldY = UU1_fieldY
{ uU1_fieldY_fieldX :: BG.CInt
{- ^ __C declaration:__ @fieldX@
__defined at:__ @macros\/wrong_source_location.h 19:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize UU1_fieldY where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw UU1_fieldY where
readRaw =
\ptr0 ->
pure UU1_fieldY
<*> HasCField.readRaw (BG.Proxy @"uU1_fieldY_fieldX") ptr0
instance Marshal.WriteRaw UU1_fieldY where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
UU1_fieldY uU1_fieldY_fieldX2 ->
HasCField.writeRaw (BG.Proxy @"uU1_fieldY_fieldX") ptr0 uU1_fieldY_fieldX2
deriving via Marshal.EquivStorable UU1_fieldY instance BG.Storable UU1_fieldY
deriving via Struct.IsStructViaReadRaw UU1_fieldY instance Struct.IsStruct UU1_fieldY
{-| __C declaration:__ @fieldX@
__defined at:__ @macros\/wrong_source_location.h 19:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ BG.CInt
) => BG.CompatHasField.HasField "uU1_fieldY_fieldX" UU1_fieldY ty where
hasField =
\x0 ->
( \y1 -> UU1_fieldY {uU1_fieldY_fieldX = y1}
, BG.getField @"uU1_fieldY_fieldX" x0
)
instance ( ty ~ BG.CInt
) => BG.HasField "uU1_fieldY_fieldX" (BG.Ptr UU1_fieldY) (BG.Ptr ty) where
getField =
HasCField.fromPtr (BG.Proxy @"uU1_fieldY_fieldX")
instance HasCField.HasCField UU1_fieldY "uU1_fieldY_fieldX" where
type CFieldType UU1_fieldY "uU1_fieldY_fieldX" =
BG.CInt
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct UU1@
__defined at:__ @macros\/wrong_source_location.h 19:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data UU1 = UU1
{ uU1_fieldY :: UU1_fieldY
{- ^ __C declaration:__ @fieldY@
__defined at:__ @macros\/wrong_source_location.h 19:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize UU1 where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw UU1 where
readRaw =
\ptr0 ->
pure UU1
<*> HasCField.readRaw (BG.Proxy @"uU1_fieldY") ptr0
instance Marshal.WriteRaw UU1 where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
UU1 uU1_fieldY2 ->
HasCField.writeRaw (BG.Proxy @"uU1_fieldY") ptr0 uU1_fieldY2
deriving via Marshal.EquivStorable UU1 instance BG.Storable UU1
deriving via Struct.IsStructViaReadRaw UU1 instance Struct.IsStruct UU1
{-| __C declaration:__ @fieldY@
__defined at:__ @macros\/wrong_source_location.h 19:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ UU1_fieldY
) => BG.CompatHasField.HasField "uU1_fieldY" UU1 ty where
hasField =
\x0 ->
(\y1 ->
UU1 {uU1_fieldY = y1}, BG.getField @"uU1_fieldY" x0)
instance ( ty ~ UU1_fieldY
) => BG.HasField "uU1_fieldY" (BG.Ptr UU1) (BG.Ptr ty) where
getField = HasCField.fromPtr (BG.Proxy @"uU1_fieldY")
instance HasCField.HasCField UU1 "uU1_fieldY" where
type CFieldType UU1 "uU1_fieldY" = UU1_fieldY
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct \@UU2_fieldY@
__defined at:__ @macros\/wrong_source_location.h 21:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data UU2_fieldY = UU2_fieldY
{ uU2_fieldY_fieldX :: BG.CInt
{- ^ __C declaration:__ @fieldX@
__defined at:__ @macros\/wrong_source_location.h 21:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize UU2_fieldY where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw UU2_fieldY where
readRaw =
\ptr0 ->
pure UU2_fieldY
<*> HasCField.readRaw (BG.Proxy @"uU2_fieldY_fieldX") ptr0
instance Marshal.WriteRaw UU2_fieldY where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
UU2_fieldY uU2_fieldY_fieldX2 ->
HasCField.writeRaw (BG.Proxy @"uU2_fieldY_fieldX") ptr0 uU2_fieldY_fieldX2
deriving via Marshal.EquivStorable UU2_fieldY instance BG.Storable UU2_fieldY
deriving via Struct.IsStructViaReadRaw UU2_fieldY instance Struct.IsStruct UU2_fieldY
{-| __C declaration:__ @fieldX@
__defined at:__ @macros\/wrong_source_location.h 21:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ BG.CInt
) => BG.CompatHasField.HasField "uU2_fieldY_fieldX" UU2_fieldY ty where
hasField =
\x0 ->
( \y1 -> UU2_fieldY {uU2_fieldY_fieldX = y1}
, BG.getField @"uU2_fieldY_fieldX" x0
)
instance ( ty ~ BG.CInt
) => BG.HasField "uU2_fieldY_fieldX" (BG.Ptr UU2_fieldY) (BG.Ptr ty) where
getField =
HasCField.fromPtr (BG.Proxy @"uU2_fieldY_fieldX")
instance HasCField.HasCField UU2_fieldY "uU2_fieldY_fieldX" where
type CFieldType UU2_fieldY "uU2_fieldY_fieldX" =
BG.CInt
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct UU2@
__defined at:__ @macros\/wrong_source_location.h 21:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data UU2 = UU2
{ uU2_fieldY :: UU2_fieldY
{- ^ __C declaration:__ @fieldY@
__defined at:__ @macros\/wrong_source_location.h 21:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize UU2 where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw UU2 where
readRaw =
\ptr0 ->
pure UU2
<*> HasCField.readRaw (BG.Proxy @"uU2_fieldY") ptr0
instance Marshal.WriteRaw UU2 where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
UU2 uU2_fieldY2 ->
HasCField.writeRaw (BG.Proxy @"uU2_fieldY") ptr0 uU2_fieldY2
deriving via Marshal.EquivStorable UU2 instance BG.Storable UU2
deriving via Struct.IsStructViaReadRaw UU2 instance Struct.IsStruct UU2
{-| __C declaration:__ @fieldY@
__defined at:__ @macros\/wrong_source_location.h 21:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ UU2_fieldY
) => BG.CompatHasField.HasField "uU2_fieldY" UU2 ty where
hasField =
\x0 ->
(\y1 ->
UU2 {uU2_fieldY = y1}, BG.getField @"uU2_fieldY" x0)
instance ( ty ~ UU2_fieldY
) => BG.HasField "uU2_fieldY" (BG.Ptr UU2) (BG.Ptr ty) where
getField = HasCField.fromPtr (BG.Proxy @"uU2_fieldY")
instance HasCField.HasCField UU2 "uU2_fieldY" where
type CFieldType UU2 "uU2_fieldY" = UU2_fieldY
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @macro TwoUntaggedStructs@
__defined at:__ @macros\/wrong_source_location.h 23:9@
__exported by:__ @macros\/wrong_source_location.h@
-}
twoUntaggedStructs :: Macro.Raw String
twoUntaggedStructs =
Macro.functionLike "TwoUntaggedStructs" ["name"] [ "struct"
, "name"
, "{"
, "struct"
, "{"
, "int"
, "a"
, ";"
, "}"
, "fieldA"
, ";"
, "struct"
, "{"
, "int"
, "b"
, ";"
, "}"
, "fieldB"
, ";"
, "}"
, ";"
]
{-| __C declaration:__ @struct \@VV1_fieldA@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data VV1_fieldA = VV1_fieldA
{ vV1_fieldA_a :: BG.CInt
{- ^ __C declaration:__ @a@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize VV1_fieldA where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw VV1_fieldA where
readRaw =
\ptr0 ->
pure VV1_fieldA
<*> HasCField.readRaw (BG.Proxy @"vV1_fieldA_a") ptr0
instance Marshal.WriteRaw VV1_fieldA where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
VV1_fieldA vV1_fieldA_a2 ->
HasCField.writeRaw (BG.Proxy @"vV1_fieldA_a") ptr0 vV1_fieldA_a2
deriving via Marshal.EquivStorable VV1_fieldA instance BG.Storable VV1_fieldA
deriving via Struct.IsStructViaReadRaw VV1_fieldA instance Struct.IsStruct VV1_fieldA
{-| __C declaration:__ @a@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ BG.CInt
) => BG.CompatHasField.HasField "vV1_fieldA_a" VV1_fieldA ty where
hasField =
\x0 ->
(\y1 ->
VV1_fieldA {vV1_fieldA_a = y1}, BG.getField @"vV1_fieldA_a" x0)
instance ( ty ~ BG.CInt
) => BG.HasField "vV1_fieldA_a" (BG.Ptr VV1_fieldA) (BG.Ptr ty) where
getField =
HasCField.fromPtr (BG.Proxy @"vV1_fieldA_a")
instance HasCField.HasCField VV1_fieldA "vV1_fieldA_a" where
type CFieldType VV1_fieldA "vV1_fieldA_a" = BG.CInt
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct \@VV1_fieldB@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data VV1_fieldB = VV1_fieldB
{ vV1_fieldB_b :: BG.CInt
{- ^ __C declaration:__ @b@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize VV1_fieldB where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw VV1_fieldB where
readRaw =
\ptr0 ->
pure VV1_fieldB
<*> HasCField.readRaw (BG.Proxy @"vV1_fieldB_b") ptr0
instance Marshal.WriteRaw VV1_fieldB where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
VV1_fieldB vV1_fieldB_b2 ->
HasCField.writeRaw (BG.Proxy @"vV1_fieldB_b") ptr0 vV1_fieldB_b2
deriving via Marshal.EquivStorable VV1_fieldB instance BG.Storable VV1_fieldB
deriving via Struct.IsStructViaReadRaw VV1_fieldB instance Struct.IsStruct VV1_fieldB
{-| __C declaration:__ @b@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ BG.CInt
) => BG.CompatHasField.HasField "vV1_fieldB_b" VV1_fieldB ty where
hasField =
\x0 ->
(\y1 ->
VV1_fieldB {vV1_fieldB_b = y1}, BG.getField @"vV1_fieldB_b" x0)
instance ( ty ~ BG.CInt
) => BG.HasField "vV1_fieldB_b" (BG.Ptr VV1_fieldB) (BG.Ptr ty) where
getField =
HasCField.fromPtr (BG.Proxy @"vV1_fieldB_b")
instance HasCField.HasCField VV1_fieldB "vV1_fieldB_b" where
type CFieldType VV1_fieldB "vV1_fieldB_b" = BG.CInt
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct VV1@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data VV1 = VV1
{ vV1_fieldA :: VV1_fieldA
{- ^ __C declaration:__ @fieldA@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
, vV1_fieldB :: VV1_fieldB
{- ^ __C declaration:__ @fieldB@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize VV1 where
staticSizeOf = \_ -> (8 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw VV1 where
readRaw =
\ptr0 ->
pure VV1
<*> HasCField.readRaw (BG.Proxy @"vV1_fieldA") ptr0
<*> HasCField.readRaw (BG.Proxy @"vV1_fieldB") ptr0
instance Marshal.WriteRaw VV1 where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
VV1 vV1_fieldA2 vV1_fieldB3 ->
HasCField.writeRaw (BG.Proxy @"vV1_fieldA") ptr0 vV1_fieldA2
>> HasCField.writeRaw (BG.Proxy @"vV1_fieldB") ptr0 vV1_fieldB3
deriving via Marshal.EquivStorable VV1 instance BG.Storable VV1
deriving via Struct.IsStructViaReadRaw VV1 instance Struct.IsStruct VV1
{-| __C declaration:__ @fieldA@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ VV1_fieldA
) => BG.CompatHasField.HasField "vV1_fieldA" VV1 ty where
hasField =
\x0 ->
( \y1 ->
VV1 {vV1_fieldA = y1, vV1_fieldB = BG.getField @"vV1_fieldB" x0}
, BG.getField @"vV1_fieldA" x0
)
instance ( ty ~ VV1_fieldA
) => BG.HasField "vV1_fieldA" (BG.Ptr VV1) (BG.Ptr ty) where
getField = HasCField.fromPtr (BG.Proxy @"vV1_fieldA")
instance HasCField.HasCField VV1 "vV1_fieldA" where
type CFieldType VV1 "vV1_fieldA" = VV1_fieldA
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @fieldB@
__defined at:__ @macros\/wrong_source_location.h 29:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ VV1_fieldB
) => BG.CompatHasField.HasField "vV1_fieldB" VV1 ty where
hasField =
\x0 ->
( \y1 ->
VV1 {vV1_fieldB = y1, vV1_fieldA = BG.getField @"vV1_fieldA" x0}
, BG.getField @"vV1_fieldB" x0
)
instance ( ty ~ VV1_fieldB
) => BG.HasField "vV1_fieldB" (BG.Ptr VV1) (BG.Ptr ty) where
getField = HasCField.fromPtr (BG.Proxy @"vV1_fieldB")
instance HasCField.HasCField VV1 "vV1_fieldB" where
type CFieldType VV1 "vV1_fieldB" = VV1_fieldB
offset# = \_ -> \_ -> 4
{-| __C declaration:__ @struct \@VV2_fieldA@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data VV2_fieldA = VV2_fieldA
{ vV2_fieldA_a :: BG.CInt
{- ^ __C declaration:__ @a@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize VV2_fieldA where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw VV2_fieldA where
readRaw =
\ptr0 ->
pure VV2_fieldA
<*> HasCField.readRaw (BG.Proxy @"vV2_fieldA_a") ptr0
instance Marshal.WriteRaw VV2_fieldA where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
VV2_fieldA vV2_fieldA_a2 ->
HasCField.writeRaw (BG.Proxy @"vV2_fieldA_a") ptr0 vV2_fieldA_a2
deriving via Marshal.EquivStorable VV2_fieldA instance BG.Storable VV2_fieldA
deriving via Struct.IsStructViaReadRaw VV2_fieldA instance Struct.IsStruct VV2_fieldA
{-| __C declaration:__ @a@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ BG.CInt
) => BG.CompatHasField.HasField "vV2_fieldA_a" VV2_fieldA ty where
hasField =
\x0 ->
(\y1 ->
VV2_fieldA {vV2_fieldA_a = y1}, BG.getField @"vV2_fieldA_a" x0)
instance ( ty ~ BG.CInt
) => BG.HasField "vV2_fieldA_a" (BG.Ptr VV2_fieldA) (BG.Ptr ty) where
getField =
HasCField.fromPtr (BG.Proxy @"vV2_fieldA_a")
instance HasCField.HasCField VV2_fieldA "vV2_fieldA_a" where
type CFieldType VV2_fieldA "vV2_fieldA_a" = BG.CInt
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct \@VV2_fieldB@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data VV2_fieldB = VV2_fieldB
{ vV2_fieldB_b :: BG.CInt
{- ^ __C declaration:__ @b@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize VV2_fieldB where
staticSizeOf = \_ -> (4 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw VV2_fieldB where
readRaw =
\ptr0 ->
pure VV2_fieldB
<*> HasCField.readRaw (BG.Proxy @"vV2_fieldB_b") ptr0
instance Marshal.WriteRaw VV2_fieldB where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
VV2_fieldB vV2_fieldB_b2 ->
HasCField.writeRaw (BG.Proxy @"vV2_fieldB_b") ptr0 vV2_fieldB_b2
deriving via Marshal.EquivStorable VV2_fieldB instance BG.Storable VV2_fieldB
deriving via Struct.IsStructViaReadRaw VV2_fieldB instance Struct.IsStruct VV2_fieldB
{-| __C declaration:__ @b@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ BG.CInt
) => BG.CompatHasField.HasField "vV2_fieldB_b" VV2_fieldB ty where
hasField =
\x0 ->
(\y1 ->
VV2_fieldB {vV2_fieldB_b = y1}, BG.getField @"vV2_fieldB_b" x0)
instance ( ty ~ BG.CInt
) => BG.HasField "vV2_fieldB_b" (BG.Ptr VV2_fieldB) (BG.Ptr ty) where
getField =
HasCField.fromPtr (BG.Proxy @"vV2_fieldB_b")
instance HasCField.HasCField VV2_fieldB "vV2_fieldB_b" where
type CFieldType VV2_fieldB "vV2_fieldB_b" = BG.CInt
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @struct VV2@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
data VV2 = VV2
{ vV2_fieldA :: VV2_fieldA
{- ^ __C declaration:__ @fieldA@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
, vV2_fieldB :: VV2_fieldB
{- ^ __C declaration:__ @fieldB@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
}
deriving stock (Eq, BG.Generic, Show)
instance Marshal.StaticSize VV2 where
staticSizeOf = \_ -> (8 :: Int)
staticAlignment = \_ -> (4 :: Int)
instance Marshal.ReadRaw VV2 where
readRaw =
\ptr0 ->
pure VV2
<*> HasCField.readRaw (BG.Proxy @"vV2_fieldA") ptr0
<*> HasCField.readRaw (BG.Proxy @"vV2_fieldB") ptr0
instance Marshal.WriteRaw VV2 where
writeRaw =
\ptr0 ->
\s1 ->
case s1 of
VV2 vV2_fieldA2 vV2_fieldB3 ->
HasCField.writeRaw (BG.Proxy @"vV2_fieldA") ptr0 vV2_fieldA2
>> HasCField.writeRaw (BG.Proxy @"vV2_fieldB") ptr0 vV2_fieldB3
deriving via Marshal.EquivStorable VV2 instance BG.Storable VV2
deriving via Struct.IsStructViaReadRaw VV2 instance Struct.IsStruct VV2
{-| __C declaration:__ @fieldA@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ VV2_fieldA
) => BG.CompatHasField.HasField "vV2_fieldA" VV2 ty where
hasField =
\x0 ->
( \y1 ->
VV2 {vV2_fieldA = y1, vV2_fieldB = BG.getField @"vV2_fieldB" x0}
, BG.getField @"vV2_fieldA" x0
)
instance ( ty ~ VV2_fieldA
) => BG.HasField "vV2_fieldA" (BG.Ptr VV2) (BG.Ptr ty) where
getField = HasCField.fromPtr (BG.Proxy @"vV2_fieldA")
instance HasCField.HasCField VV2 "vV2_fieldA" where
type CFieldType VV2 "vV2_fieldA" = VV2_fieldA
offset# = \_ -> \_ -> 0
{-| __C declaration:__ @fieldB@
__defined at:__ @macros\/wrong_source_location.h 31:1@
__exported by:__ @macros\/wrong_source_location.h@
-}
instance ( ty ~ VV2_fieldB
) => BG.CompatHasField.HasField "vV2_fieldB" VV2 ty where
hasField =
\x0 ->
( \y1 ->
VV2 {vV2_fieldB = y1, vV2_fieldA = BG.getField @"vV2_fieldA" x0}
, BG.getField @"vV2_fieldB" x0
)
instance ( ty ~ VV2_fieldB
) => BG.HasField "vV2_fieldB" (BG.Ptr VV2) (BG.Ptr ty) where
getField = HasCField.fromPtr (BG.Proxy @"vV2_fieldB")
instance HasCField.HasCField VV2 "vV2_fieldB" where
type CFieldType VV2 "vV2_fieldB" = VV2_fieldB
offset# = \_ -> \_ -> 4