packages feed

dear-imgui-raw-1.0.0: src/DearImGui/Raw/ImGuiPayload.hsc

{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}

-- This file was generated by dear-bindings-ffi. Do not edit by hand.

module DearImGui.Raw.ImGuiPayload
  ( ImGuiPayload
  , clear
  , dataTypeLength
  , destroy
  , init
  , isDataType
  , isDelivery
  , isPreview
  , withDefault
  ) where

import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID)
import Foreign.C.String (CString)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Ptr (Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
import Prelude hiding (init)

#include "dcimgui_nodefaultargfunctions.h"

-- structs (opaque)

data ImGuiPayload
instance Storable ImGuiPayload where
  sizeOf _    = #{size ImGuiPayload}
  alignment _ = #{alignment ImGuiPayload}
  peek _ = error "ImGuiPayload: opaque struct, peek not supported in v0"
  poke _ _ = error "ImGuiPayload: opaque struct, poke not supported in v0"

instance HasField "data_" (Ptr ImGuiPayload) (Ptr (Ptr ())) where
  getField = #{ptr ImGuiPayload, Data}

instance HasField "dataSize" (Ptr ImGuiPayload) (Ptr CInt) where
  getField = #{ptr ImGuiPayload, DataSize}

instance HasField "sourceId" (Ptr ImGuiPayload) (Ptr ImGuiID) where
  getField = #{ptr ImGuiPayload, SourceId}

instance HasField "sourceParentId" (Ptr ImGuiPayload) (Ptr ImGuiID) where
  getField = #{ptr ImGuiPayload, SourceParentId}

instance HasField "dataFrameCount" (Ptr ImGuiPayload) (Ptr CInt) where
  getField = #{ptr ImGuiPayload, DataFrameCount}

instance HasField "dataType" (Ptr ImGuiPayload) (Ptr CChar) where
  getField = #{ptr ImGuiPayload, DataType}

dataTypeLength :: Int
dataTypeLength = #{const 32+1}

instance HasField "preview" (Ptr ImGuiPayload) (Ptr CBool) where
  getField = #{ptr ImGuiPayload, Preview}

instance HasField "delivery" (Ptr ImGuiPayload) (Ptr CBool) where
  getField = #{ptr ImGuiPayload, Delivery}

foreign import capi unsafe "DearImGuiWrappers.h ImGuiPayload_Init_wrap"
  init
    :: Ptr ImGuiPayload
    -> IO ()

foreign import capi unsafe "DearImGuiWrappers.h ImGuiPayload_Destroy_wrap"
  destroy
    :: Ptr ImGuiPayload
    -> IO ()

withDefault :: (Ptr ImGuiPayload -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)

-- functions

-- C: void Clear(ImGuiPayload* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGuiPayload_Clear"
  clear
    :: (Ptr ImGuiPayload) -- ^ self
    -> IO ()

-- C: bool IsDataType(const ImGuiPayload* self, const char* type)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGuiPayload_IsDataType"
  isDataType
    :: (Ptr ImGuiPayload) -- ^ self
    -> CString -- ^ type
    -> IO CBool

-- C: bool IsDelivery(const ImGuiPayload* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGuiPayload_IsDelivery"
  isDelivery
    :: (Ptr ImGuiPayload) -- ^ self
    -> IO CBool

-- C: bool IsPreview(const ImGuiPayload* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions.h ImGuiPayload_IsPreview"
  isPreview
    :: (Ptr ImGuiPayload) -- ^ self
    -> IO CBool