module GI.Ggit.Objects.TreeBuilder
(
TreeBuilder(..) ,
IsTreeBuilder ,
toTreeBuilder ,
noTreeBuilder ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
TreeBuilderClearMethodInfo ,
#endif
treeBuilderClear ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
TreeBuilderGetEntryMethodInfo ,
#endif
treeBuilderGetEntry ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
TreeBuilderInsertMethodInfo ,
#endif
treeBuilderInsert ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
TreeBuilderRemoveMethodInfo ,
#endif
treeBuilderRemove ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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.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 qualified GI.Ggit.Enums as Ggit.Enums
import qualified GI.Ggit.Objects.Native as Ggit.Native
import qualified GI.Ggit.Objects.ObjectFactoryBase as Ggit.ObjectFactoryBase
import qualified GI.Ggit.Structs.OId as Ggit.OId
import 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 (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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 "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 "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
ResolveTreeBuilderMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList TreeBuilder
type instance O.AttributeList TreeBuilder = TreeBuilderAttributeList
type TreeBuilderAttributeList = ('[ '("native", Ggit.Native.NativeNativePropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
#endif
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 Ggit.TreeEntry.TreeEntry
treeBuilderGetEntry builder path = liftIO $ do
builder' <- unsafeManagedPtrCastPtr builder
path' <- textToCString path
result <- ggit_tree_builder_get_entry builder' path'
checkUnexpectedReturnNULL "treeBuilderGetEntry" result
result' <- (wrapBoxed Ggit.TreeEntry.TreeEntry) result
touchManagedPtr builder
freeMem path'
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data TreeBuilderGetEntryMethodInfo
instance (signature ~ (T.Text -> m 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 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'
checkUnexpectedReturnNULL "treeBuilderInsert" result
result' <- (wrapBoxed Ggit.TreeEntry.TreeEntry) result
touchManagedPtr builder
touchManagedPtr oid
freeMem filename'
return result'
) (do
freeMem filename'
)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data TreeBuilderInsertMethodInfo
instance (signature ~ (T.Text -> Ggit.OId.OId -> Ggit.Enums.FileMode -> m 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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 Ggit.OId.OId
treeBuilderWrite builder = liftIO $ do
builder' <- unsafeManagedPtrCastPtr builder
onException (do
result <- propagateGError $ ggit_tree_builder_write builder'
checkUnexpectedReturnNULL "treeBuilderWrite" result
result' <- (wrapBoxed Ggit.OId.OId) result
touchManagedPtr builder
return result'
) (do
return ()
)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data TreeBuilderWriteMethodInfo
instance (signature ~ (m Ggit.OId.OId), MonadIO m, IsTreeBuilder a) => O.MethodInfo TreeBuilderWriteMethodInfo a signature where
overloadedMethod _ = treeBuilderWrite
#endif