packages feed

hs-bindgen-1.0.0.0: test-artefacts/fixtures/binding-specs/relative_include/sub/consumer/Example.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}

module Example
    ( Example.Widget_legacy_t(..)
    )
  where

import qualified HsBindgen.Runtime.HasCField as HasCField
import qualified HsBindgen.Runtime.Support as BG
import qualified HsBindgen.Runtime.Support.CompatHasField as BG.CompatHasField
import qualified M
import Prelude (type (~))

{-| __C declaration:__ @widget_legacy_t@

    __defined at:__ @binding-specs\/relative_include\/sub\/consumer.h 19:25@

    __exported by:__ @binding-specs\/relative_include\/sub\/consumer.h@
-}
newtype Widget_legacy_t = Widget_legacy_t
  { unwrapWidget_legacy_t :: M.WidgetT
  }
  deriving stock (BG.Generic)

instance ( ty ~ M.WidgetT
         ) => BG.CompatHasField.HasField "unwrapWidget_legacy_t" Widget_legacy_t ty where

  hasField =
    \x0 ->
      ( \y1 -> Widget_legacy_t {unwrapWidget_legacy_t = y1}
      , BG.getField @"unwrapWidget_legacy_t" x0
      )

instance ( ty ~ M.WidgetT
         ) => BG.HasField "unwrapWidget_legacy_t" (BG.Ptr Widget_legacy_t) (BG.Ptr ty) where

  getField =
    HasCField.fromPtr (BG.Proxy @"unwrapWidget_legacy_t")

instance HasCField.HasCField Widget_legacy_t "unwrapWidget_legacy_t" where

  type CFieldType Widget_legacy_t "unwrapWidget_legacy_t" =
    M.WidgetT

  offset# = \_ -> \_ -> 0