dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiDebugItemPathQuery.hsc
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImGuiDebugItemPathQuery
( ImGuiDebugItemPathQuery (..)
, destroy
, init
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw (ImGuiID, ImS8)
import DearImGui.Raw.ImGuiTextBuffer (ImGuiTextBuffer)
import DearImGui.Raw.ImVector (ImVector)
import DearImGui.Raw.Internal.ImGuiStackLevelInfo (ImGuiStackLevelInfo)
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_internal.h"
-- structs (opaque)
data {-# CTYPE "dcimgui_nodefaultargfunctions_internal.h" "ImGuiDebugItemPathQuery" #-} ImGuiDebugItemPathQuery = ImGuiDebugItemPathQuery
{ mainID :: ImGuiID
, active :: CBool
, complete :: CBool
, step :: ImS8
, results :: ImVector ImGuiStackLevelInfo
, resultsDescBuf :: ImGuiTextBuffer
, resultPathBuf :: ImGuiTextBuffer
}
deriving (Eq, Show)
instance Storable ImGuiDebugItemPathQuery where
sizeOf _ = #{size ImGuiDebugItemPathQuery}
alignment _ = #{alignment ImGuiDebugItemPathQuery}
peek p = ImGuiDebugItemPathQuery <$> #{peek ImGuiDebugItemPathQuery, MainID} p <*> #{peek ImGuiDebugItemPathQuery, Active} p <*> #{peek ImGuiDebugItemPathQuery, Complete} p <*> #{peek ImGuiDebugItemPathQuery, Step} p <*> #{peek ImGuiDebugItemPathQuery, Results} p <*> #{peek ImGuiDebugItemPathQuery, ResultsDescBuf} p <*> #{peek ImGuiDebugItemPathQuery, ResultPathBuf} p
poke p v = do
#{poke ImGuiDebugItemPathQuery, MainID} p v.mainID
#{poke ImGuiDebugItemPathQuery, Active} p v.active
#{poke ImGuiDebugItemPathQuery, Complete} p v.complete
#{poke ImGuiDebugItemPathQuery, Step} p v.step
#{poke ImGuiDebugItemPathQuery, Results} p v.results
#{poke ImGuiDebugItemPathQuery, ResultsDescBuf} p v.resultsDescBuf
#{poke ImGuiDebugItemPathQuery, ResultPathBuf} p v.resultPathBuf
instance HasField "mainID" (Ptr ImGuiDebugItemPathQuery) (Ptr ImGuiID) where
getField = #{ptr ImGuiDebugItemPathQuery, MainID}
instance HasField "active" (Ptr ImGuiDebugItemPathQuery) (Ptr CBool) where
getField = #{ptr ImGuiDebugItemPathQuery, Active}
instance HasField "complete" (Ptr ImGuiDebugItemPathQuery) (Ptr CBool) where
getField = #{ptr ImGuiDebugItemPathQuery, Complete}
instance HasField "step" (Ptr ImGuiDebugItemPathQuery) (Ptr ImS8) where
getField = #{ptr ImGuiDebugItemPathQuery, Step}
instance HasField "results" (Ptr ImGuiDebugItemPathQuery) (Ptr (ImVector ImGuiStackLevelInfo)) where
getField = #{ptr ImGuiDebugItemPathQuery, Results}
instance HasField "resultsDescBuf" (Ptr ImGuiDebugItemPathQuery) (Ptr ImGuiTextBuffer) where
getField = #{ptr ImGuiDebugItemPathQuery, ResultsDescBuf}
instance HasField "resultPathBuf" (Ptr ImGuiDebugItemPathQuery) (Ptr ImGuiTextBuffer) where
getField = #{ptr ImGuiDebugItemPathQuery, ResultPathBuf}
foreign import capi unsafe "DearImGuiWrappers.h ImGuiDebugItemPathQuery_Init_wrap"
init
:: Ptr ImGuiDebugItemPathQuery
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImGuiDebugItemPathQuery_Destroy_wrap"
destroy
:: Ptr ImGuiDebugItemPathQuery
-> IO ()
withDefault :: (Ptr ImGuiDebugItemPathQuery -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)