packages feed

dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImGuiErrorRecoveryState.hsc

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

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

module DearImGui.Raw.Internal.ImGuiErrorRecoveryState
  ( ImGuiErrorRecoveryState (..)
  , destroy
  , init
  , withDefault
  ) where

import Control.Exception (bracket_)
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" "ImGuiErrorRecoveryState" #-} ImGuiErrorRecoveryState = ImGuiErrorRecoveryState
  { sizeOfWindowStack :: CShort
  , sizeOfIDStack :: CShort
  , sizeOfTreeStack :: CShort
  , sizeOfColorStack :: CShort
  , sizeOfStyleVarStack :: CShort
  , sizeOfFontStack :: CShort
  , sizeOfFocusScopeStack :: CShort
  , sizeOfGroupStack :: CShort
  , sizeOfItemFlagsStack :: CShort
  , sizeOfBeginPopupStack :: CShort
  , sizeOfDisabledStack :: CShort
  }
  deriving (Eq, Show)
instance Storable ImGuiErrorRecoveryState where
  sizeOf _    = #{size ImGuiErrorRecoveryState}
  alignment _ = #{alignment ImGuiErrorRecoveryState}
  peek p = ImGuiErrorRecoveryState <$> #{peek ImGuiErrorRecoveryState, SizeOfWindowStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfIDStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfTreeStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfColorStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfStyleVarStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfFontStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfFocusScopeStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfGroupStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfItemFlagsStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfBeginPopupStack} p <*> #{peek ImGuiErrorRecoveryState, SizeOfDisabledStack} p
  poke p v = do
    #{poke ImGuiErrorRecoveryState, SizeOfWindowStack} p v.sizeOfWindowStack
    #{poke ImGuiErrorRecoveryState, SizeOfIDStack} p v.sizeOfIDStack
    #{poke ImGuiErrorRecoveryState, SizeOfTreeStack} p v.sizeOfTreeStack
    #{poke ImGuiErrorRecoveryState, SizeOfColorStack} p v.sizeOfColorStack
    #{poke ImGuiErrorRecoveryState, SizeOfStyleVarStack} p v.sizeOfStyleVarStack
    #{poke ImGuiErrorRecoveryState, SizeOfFontStack} p v.sizeOfFontStack
    #{poke ImGuiErrorRecoveryState, SizeOfFocusScopeStack} p v.sizeOfFocusScopeStack
    #{poke ImGuiErrorRecoveryState, SizeOfGroupStack} p v.sizeOfGroupStack
    #{poke ImGuiErrorRecoveryState, SizeOfItemFlagsStack} p v.sizeOfItemFlagsStack
    #{poke ImGuiErrorRecoveryState, SizeOfBeginPopupStack} p v.sizeOfBeginPopupStack
    #{poke ImGuiErrorRecoveryState, SizeOfDisabledStack} p v.sizeOfDisabledStack

instance HasField "sizeOfWindowStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfWindowStack}

instance HasField "sizeOfIDStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfIDStack}

instance HasField "sizeOfTreeStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfTreeStack}

instance HasField "sizeOfColorStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfColorStack}

instance HasField "sizeOfStyleVarStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfStyleVarStack}

instance HasField "sizeOfFontStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfFontStack}

instance HasField "sizeOfFocusScopeStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfFocusScopeStack}

instance HasField "sizeOfGroupStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfGroupStack}

instance HasField "sizeOfItemFlagsStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfItemFlagsStack}

instance HasField "sizeOfBeginPopupStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfBeginPopupStack}

instance HasField "sizeOfDisabledStack" (Ptr ImGuiErrorRecoveryState) (Ptr CShort) where
  getField = #{ptr ImGuiErrorRecoveryState, SizeOfDisabledStack}

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

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

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