#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Ggit.Objects.TreeBuilder
(
TreeBuilder(..) ,
IsTreeBuilder ,
toTreeBuilder ,
noTreeBuilder ,
#if ENABLE_OVERLOADING
TreeBuilderClearMethodInfo ,
#endif
treeBuilderClear ,
#if ENABLE_OVERLOADING
TreeBuilderGetEntryMethodInfo ,
#endif
treeBuilderGetEntry ,
#if ENABLE_OVERLOADING
TreeBuilderInsertMethodInfo ,
#endif
treeBuilderInsert ,
#if ENABLE_OVERLOADING
TreeBuilderRemoveMethodInfo ,
#endif
treeBuilderRemove ,
#if ENABLE_OVERLOADING
TreeBuilderWriteMethodInfo ,
#endif
treeBuilderWrite ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Ggit.Enums as Ggit.Enums
import {-# SOURCE #-} qualified GI.Ggit.Objects.Native as Ggit.Native
import {-# SOURCE #-} qualified GI.Ggit.Objects.ObjectFactoryBase as Ggit.ObjectFactoryBase
import {-# SOURCE #-} qualified GI.Ggit.Structs.OId as Ggit.OId
import {-# SOURCE #-} qualified GI.Ggit.Structs.TreeEntry as Ggit.TreeEntry
newtype TreeBuilder = TreeBuilder (ManagedPtr TreeBuilder)
foreign import ccall "ggit_tree_builder_get_type"
c_ggit_tree_builder_get_type :: IO GType
instance GObject TreeBuilder where
gobjectType _ = c_ggit_tree_builder_get_type
class GObject o => IsTreeBuilder o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError TreeBuilder a) =>
IsTreeBuilder a
#endif
instance IsTreeBuilder TreeBuilder
instance Ggit.Native.IsNative TreeBuilder
instance Ggit.ObjectFactoryBase.IsObjectFactoryBase TreeBuilder
instance GObject.Object.IsObject TreeBuilder
toTreeBuilder :: (MonadIO m, IsTreeBuilder o) => o -> m TreeBuilder
toTreeBuilder = liftIO . unsafeCastTo TreeBuilder
noTreeBuilder :: Maybe TreeBuilder
noTreeBuilder = Nothing
#if ENABLE_OVERLOADING
type family ResolveTreeBuilderMethod (t :: Symbol) (o :: *) :: * where
ResolveTreeBuilderMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveTreeBuilderMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveTreeBuilderMethod "clear" o = TreeBuilderClearMethodInfo
ResolveTreeBuilderMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveTreeBuilderMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveTreeBuilderMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveTreeBuilderMethod "insert" o = TreeBuilderInsertMethodInfo
ResolveTreeBuilderMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveTreeBuilderMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveTreeBuilderMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveTreeBuilderMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveTreeBuilderMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveTreeBuilderMethod "remove" o = TreeBuilderRemoveMethodInfo
ResolveTreeBuilderMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveTreeBuilderMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveTreeBuilderMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveTreeBuilderMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveTreeBuilderMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveTreeBuilderMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveTreeBuilderMethod "write" o = TreeBuilderWriteMethodInfo
ResolveTreeBuilderMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveTreeBuilderMethod "getEntry" o = TreeBuilderGetEntryMethodInfo
ResolveTreeBuilderMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveTreeBuilderMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveTreeBuilderMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveTreeBuilderMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveTreeBuilderMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveTreeBuilderMethod t TreeBuilder, O.MethodInfo info TreeBuilder p) => O.IsLabelProxy t (TreeBuilder -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveTreeBuilderMethod t TreeBuilder, O.MethodInfo info TreeBuilder p) => O.IsLabel t (TreeBuilder -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList TreeBuilder
type instance O.AttributeList TreeBuilder = TreeBuilderAttributeList
type TreeBuilderAttributeList = ('[ '("native", Ggit.Native.NativeNativePropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList TreeBuilder = TreeBuilderSignalList
type TreeBuilderSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "ggit_tree_builder_clear" ggit_tree_builder_clear ::
Ptr TreeBuilder ->
IO ()
treeBuilderClear ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeBuilder a) =>
a
-> m ()
treeBuilderClear builder = liftIO $ do
builder' <- unsafeManagedPtrCastPtr builder
ggit_tree_builder_clear builder'
touchManagedPtr builder
return ()
#if ENABLE_OVERLOADING
data TreeBuilderClearMethodInfo
instance (signature ~ (m ()), MonadIO m, IsTreeBuilder a) => O.MethodInfo TreeBuilderClearMethodInfo a signature where
overloadedMethod _ = treeBuilderClear
#endif
foreign import ccall "ggit_tree_builder_get_entry" ggit_tree_builder_get_entry ::
Ptr TreeBuilder ->
CString ->
IO (Ptr Ggit.TreeEntry.TreeEntry)
treeBuilderGetEntry ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeBuilder a) =>
a
-> T.Text
-> m (Maybe Ggit.TreeEntry.TreeEntry)
treeBuilderGetEntry builder path = liftIO $ do
builder' <- unsafeManagedPtrCastPtr builder
path' <- textToCString path
result <- ggit_tree_builder_get_entry builder' path'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Ggit.TreeEntry.TreeEntry) result'
return result''
touchManagedPtr builder
freeMem path'
return maybeResult
#if ENABLE_OVERLOADING
data TreeBuilderGetEntryMethodInfo
instance (signature ~ (T.Text -> m (Maybe Ggit.TreeEntry.TreeEntry)), MonadIO m, IsTreeBuilder a) => O.MethodInfo TreeBuilderGetEntryMethodInfo a signature where
overloadedMethod _ = treeBuilderGetEntry
#endif
foreign import ccall "ggit_tree_builder_insert" ggit_tree_builder_insert ::
Ptr TreeBuilder ->
CString ->
Ptr Ggit.OId.OId ->
CUInt ->
Ptr (Ptr GError) ->
IO (Ptr Ggit.TreeEntry.TreeEntry)
treeBuilderInsert ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeBuilder a) =>
a
-> T.Text
-> Ggit.OId.OId
-> Ggit.Enums.FileMode
-> m (Maybe Ggit.TreeEntry.TreeEntry)
treeBuilderInsert builder filename oid fileMode = liftIO $ do
builder' <- unsafeManagedPtrCastPtr builder
filename' <- textToCString filename
oid' <- unsafeManagedPtrGetPtr oid
let fileMode' = (fromIntegral . fromEnum) fileMode
onException (do
result <- propagateGError $ ggit_tree_builder_insert builder' filename' oid' fileMode'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Ggit.TreeEntry.TreeEntry) result'
return result''
touchManagedPtr builder
touchManagedPtr oid
freeMem filename'
return maybeResult
) (do
freeMem filename'
)
#if ENABLE_OVERLOADING
data TreeBuilderInsertMethodInfo
instance (signature ~ (T.Text -> Ggit.OId.OId -> Ggit.Enums.FileMode -> m (Maybe Ggit.TreeEntry.TreeEntry)), MonadIO m, IsTreeBuilder a) => O.MethodInfo TreeBuilderInsertMethodInfo a signature where
overloadedMethod _ = treeBuilderInsert
#endif
foreign import ccall "ggit_tree_builder_remove" ggit_tree_builder_remove ::
Ptr TreeBuilder ->
CString ->
Ptr (Ptr GError) ->
IO ()
treeBuilderRemove ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeBuilder a) =>
a
-> T.Text
-> m ()
treeBuilderRemove builder path = liftIO $ do
builder' <- unsafeManagedPtrCastPtr builder
path' <- textToCString path
onException (do
propagateGError $ ggit_tree_builder_remove builder' path'
touchManagedPtr builder
freeMem path'
return ()
) (do
freeMem path'
)
#if ENABLE_OVERLOADING
data TreeBuilderRemoveMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsTreeBuilder a) => O.MethodInfo TreeBuilderRemoveMethodInfo a signature where
overloadedMethod _ = treeBuilderRemove
#endif
foreign import ccall "ggit_tree_builder_write" ggit_tree_builder_write ::
Ptr TreeBuilder ->
Ptr (Ptr GError) ->
IO (Ptr Ggit.OId.OId)
treeBuilderWrite ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeBuilder a) =>
a
-> m (Maybe Ggit.OId.OId)
treeBuilderWrite builder = liftIO $ do
builder' <- unsafeManagedPtrCastPtr builder
onException (do
result <- propagateGError $ ggit_tree_builder_write builder'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Ggit.OId.OId) result'
return result''
touchManagedPtr builder
return maybeResult
) (do
return ()
)
#if ENABLE_OVERLOADING
data TreeBuilderWriteMethodInfo
instance (signature ~ (m (Maybe Ggit.OId.OId)), MonadIO m, IsTreeBuilder a) => O.MethodInfo TreeBuilderWriteMethodInfo a signature where
overloadedMethod _ = treeBuilderWrite
#endif