{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.OSTree.Objects.MutableTree
(
#if defined(ENABLE_OVERLOADING)
MutableTreeGetSubdirsMethodInfo ,
#endif
MutableTree(..) ,
IsMutableTree ,
toMutableTree ,
#if defined(ENABLE_OVERLOADING)
ResolveMutableTreeMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
MutableTreeCheckErrorMethodInfo ,
#endif
mutableTreeCheckError ,
#if defined(ENABLE_OVERLOADING)
MutableTreeEnsureDirMethodInfo ,
#endif
mutableTreeEnsureDir ,
#if defined(ENABLE_OVERLOADING)
MutableTreeEnsureParentDirsMethodInfo ,
#endif
mutableTreeEnsureParentDirs ,
#if defined(ENABLE_OVERLOADING)
MutableTreeFillEmptyFromDirtreeMethodInfo,
#endif
mutableTreeFillEmptyFromDirtree ,
#if defined(ENABLE_OVERLOADING)
MutableTreeGetContentsChecksumMethodInfo,
#endif
mutableTreeGetContentsChecksum ,
#if defined(ENABLE_OVERLOADING)
MutableTreeGetFilesMethodInfo ,
#endif
mutableTreeGetFiles ,
#if defined(ENABLE_OVERLOADING)
MutableTreeGetMetadataChecksumMethodInfo,
#endif
mutableTreeGetMetadataChecksum ,
#if defined(ENABLE_OVERLOADING)
MutableTreeLookupMethodInfo ,
#endif
mutableTreeLookup ,
mutableTreeNew ,
mutableTreeNewFromChecksum ,
mutableTreeNewFromCommit ,
#if defined(ENABLE_OVERLOADING)
MutableTreeRemoveMethodInfo ,
#endif
mutableTreeRemove ,
#if defined(ENABLE_OVERLOADING)
MutableTreeReplaceFileMethodInfo ,
#endif
mutableTreeReplaceFile ,
#if defined(ENABLE_OVERLOADING)
MutableTreeSetContentsChecksumMethodInfo,
#endif
mutableTreeSetContentsChecksum ,
#if defined(ENABLE_OVERLOADING)
MutableTreeSetMetadataChecksumMethodInfo,
#endif
mutableTreeSetMetadataChecksum ,
#if defined(ENABLE_OVERLOADING)
MutableTreeWalkMethodInfo ,
#endif
mutableTreeWalk ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT
#if MIN_VERSION_base(4,18,0)
import qualified GI.GLib.Callbacks as GLib.Callbacks
import qualified GI.GLib.Structs.Bytes as GLib.Bytes
import qualified GI.GLib.Structs.KeyFile as GLib.KeyFile
import qualified GI.GLib.Structs.String as GLib.String
import qualified GI.GLib.Structs.VariantDict as GLib.VariantDict
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Callbacks as Gio.Callbacks
import qualified GI.Gio.Flags as Gio.Flags
import qualified GI.Gio.Interfaces.AsyncResult as Gio.AsyncResult
import qualified GI.Gio.Interfaces.File as Gio.File
import qualified GI.Gio.Interfaces.Initable as Gio.Initable
import qualified GI.Gio.Objects.Cancellable as Gio.Cancellable
import qualified GI.Gio.Objects.FileInfo as Gio.FileInfo
import qualified GI.Gio.Objects.InputStream as Gio.InputStream
import qualified GI.Gio.Objects.OutputStream as Gio.OutputStream
import qualified GI.OSTree.Callbacks as OSTree.Callbacks
import {-# SOURCE #-} qualified GI.OSTree.Enums as OSTree.Enums
import {-# SOURCE #-} qualified GI.OSTree.Flags as OSTree.Flags
import {-# SOURCE #-} qualified GI.OSTree.Interfaces.BlobReader as OSTree.BlobReader
import {-# SOURCE #-} qualified GI.OSTree.Interfaces.RepoFinder as OSTree.RepoFinder
import {-# SOURCE #-} qualified GI.OSTree.Interfaces.Sign as OSTree.Sign
import {-# SOURCE #-} qualified GI.OSTree.Objects.AsyncProgress as OSTree.AsyncProgress
import {-# SOURCE #-} qualified GI.OSTree.Objects.ContentWriter as OSTree.ContentWriter
import {-# SOURCE #-} qualified GI.OSTree.Objects.GpgVerifyResult as OSTree.GpgVerifyResult
import {-# SOURCE #-} qualified GI.OSTree.Objects.Repo as OSTree.Repo
import {-# SOURCE #-} qualified GI.OSTree.Objects.RepoFile as OSTree.RepoFile
import {-# SOURCE #-} qualified GI.OSTree.Objects.SePolicy as OSTree.SePolicy
import {-# SOURCE #-} qualified GI.OSTree.Structs.CollectionRef as OSTree.CollectionRef
import {-# SOURCE #-} qualified GI.OSTree.Structs.Remote as OSTree.Remote
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoCheckoutAtOptions as OSTree.RepoCheckoutAtOptions
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoCommitModifier as OSTree.RepoCommitModifier
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoDevInoCache as OSTree.RepoDevInoCache
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoFinderResult as OSTree.RepoFinderResult
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoPruneOptions as OSTree.RepoPruneOptions
import {-# SOURCE #-} qualified GI.OSTree.Structs.RepoTransactionStats as OSTree.RepoTransactionStats
#else
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.OSTree.Objects.Repo as OSTree.Repo
#endif
newtype MutableTree = MutableTree (SP.ManagedPtr MutableTree)
deriving (MutableTree -> MutableTree -> Bool
(MutableTree -> MutableTree -> Bool)
-> (MutableTree -> MutableTree -> Bool) -> Eq MutableTree
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MutableTree -> MutableTree -> Bool
== :: MutableTree -> MutableTree -> Bool
$c/= :: MutableTree -> MutableTree -> Bool
/= :: MutableTree -> MutableTree -> Bool
Eq)
instance SP.ManagedPtrNewtype MutableTree where
toManagedPtr :: MutableTree -> ManagedPtr MutableTree
toManagedPtr (MutableTree ManagedPtr MutableTree
p) = ManagedPtr MutableTree
p
foreign import ccall "ostree_mutable_tree_get_type"
c_ostree_mutable_tree_get_type :: IO B.Types.GType
instance B.Types.TypedObject MutableTree where
glibType :: IO GType
glibType = IO GType
c_ostree_mutable_tree_get_type
instance B.Types.GObject MutableTree
class (SP.GObject o, O.IsDescendantOf MutableTree o) => IsMutableTree o
instance (SP.GObject o, O.IsDescendantOf MutableTree o) => IsMutableTree o
instance O.HasParentTypes MutableTree
type instance O.ParentTypes MutableTree = '[GObject.Object.Object]
toMutableTree :: (MIO.MonadIO m, IsMutableTree o) => o -> m MutableTree
toMutableTree :: forall (m :: * -> *) o.
(MonadIO m, IsMutableTree o) =>
o -> m MutableTree
toMutableTree = IO MutableTree -> m MutableTree
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO MutableTree -> m MutableTree)
-> (o -> IO MutableTree) -> o -> m MutableTree
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr MutableTree -> MutableTree) -> o -> IO MutableTree
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr MutableTree -> MutableTree
MutableTree
instance B.GValue.IsGValue (Maybe MutableTree) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_ostree_mutable_tree_get_type
gvalueSet_ :: Ptr GValue -> Maybe MutableTree -> IO ()
gvalueSet_ Ptr GValue
gv Maybe MutableTree
P.Nothing = Ptr GValue -> Ptr MutableTree -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr MutableTree
forall a. Ptr a
FP.nullPtr :: FP.Ptr MutableTree)
gvalueSet_ Ptr GValue
gv (P.Just MutableTree
obj) = MutableTree -> (Ptr MutableTree -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr MutableTree
obj (Ptr GValue -> Ptr MutableTree -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe MutableTree)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr MutableTree)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr MutableTree)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newObject MutableTree ptr
else return P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveMutableTreeMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveMutableTreeMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveMutableTreeMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveMutableTreeMethod "checkError" o = MutableTreeCheckErrorMethodInfo
ResolveMutableTreeMethod "ensureDir" o = MutableTreeEnsureDirMethodInfo
ResolveMutableTreeMethod "ensureParentDirs" o = MutableTreeEnsureParentDirsMethodInfo
ResolveMutableTreeMethod "fillEmptyFromDirtree" o = MutableTreeFillEmptyFromDirtreeMethodInfo
ResolveMutableTreeMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveMutableTreeMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveMutableTreeMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveMutableTreeMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveMutableTreeMethod "lookup" o = MutableTreeLookupMethodInfo
ResolveMutableTreeMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveMutableTreeMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveMutableTreeMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveMutableTreeMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveMutableTreeMethod "remove" o = MutableTreeRemoveMethodInfo
ResolveMutableTreeMethod "replaceFile" o = MutableTreeReplaceFileMethodInfo
ResolveMutableTreeMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveMutableTreeMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveMutableTreeMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveMutableTreeMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveMutableTreeMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveMutableTreeMethod "walk" o = MutableTreeWalkMethodInfo
ResolveMutableTreeMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveMutableTreeMethod "getContentsChecksum" o = MutableTreeGetContentsChecksumMethodInfo
ResolveMutableTreeMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveMutableTreeMethod "getFiles" o = MutableTreeGetFilesMethodInfo
ResolveMutableTreeMethod "getMetadataChecksum" o = MutableTreeGetMetadataChecksumMethodInfo
ResolveMutableTreeMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveMutableTreeMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveMutableTreeMethod "getSubdirs" o = MutableTreeGetSubdirsMethodInfo
ResolveMutableTreeMethod "setContentsChecksum" o = MutableTreeSetContentsChecksumMethodInfo
ResolveMutableTreeMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveMutableTreeMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveMutableTreeMethod "setMetadataChecksum" o = MutableTreeSetMetadataChecksumMethodInfo
ResolveMutableTreeMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveMutableTreeMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMutableTreeMethod t MutableTree, O.OverloadedMethod info MutableTree p) => OL.IsLabel t (MutableTree -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveMutableTreeMethod t MutableTree, O.OverloadedMethod info MutableTree p, R.HasField t MutableTree p) => R.HasField t MutableTree p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveMutableTreeMethod t MutableTree, O.OverloadedMethodInfo info MutableTree) => OL.IsLabel t (O.MethodProxy info MutableTree) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList MutableTree
type instance O.AttributeList MutableTree = MutableTreeAttributeList
type MutableTreeAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList MutableTree = MutableTreeSignalList
type MutableTreeSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "ostree_mutable_tree_new" ostree_mutable_tree_new ::
IO (Ptr MutableTree)
mutableTreeNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m MutableTree
mutableTreeNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m MutableTree
mutableTreeNew = IO MutableTree -> m MutableTree
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MutableTree -> m MutableTree)
-> IO MutableTree -> m MutableTree
forall a b. (a -> b) -> a -> b
$ do
result <- IO (Ptr MutableTree)
ostree_mutable_tree_new
checkUnexpectedReturnNULL "mutableTreeNew" result
result' <- (wrapObject MutableTree) result
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "ostree_mutable_tree_new_from_checksum" ostree_mutable_tree_new_from_checksum ::
Ptr OSTree.Repo.Repo ->
CString ->
CString ->
IO (Ptr MutableTree)
mutableTreeNewFromChecksum ::
(B.CallStack.HasCallStack, MonadIO m, OSTree.Repo.IsRepo a) =>
a
-> T.Text
-> T.Text
-> m MutableTree
mutableTreeNewFromChecksum :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsRepo a) =>
a -> Text -> Text -> m MutableTree
mutableTreeNewFromChecksum a
repo Text
contentsChecksum Text
metadataChecksum = IO MutableTree -> m MutableTree
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MutableTree -> m MutableTree)
-> IO MutableTree -> m MutableTree
forall a b. (a -> b) -> a -> b
$ do
repo' <- a -> IO (Ptr Repo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
repo
contentsChecksum' <- textToCString contentsChecksum
metadataChecksum' <- textToCString metadataChecksum
result <- ostree_mutable_tree_new_from_checksum repo' contentsChecksum' metadataChecksum'
checkUnexpectedReturnNULL "mutableTreeNewFromChecksum" result
result' <- (wrapObject MutableTree) result
touchManagedPtr repo
freeMem contentsChecksum'
freeMem metadataChecksum'
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "ostree_mutable_tree_new_from_commit" ostree_mutable_tree_new_from_commit ::
Ptr OSTree.Repo.Repo ->
CString ->
Ptr (Ptr GError) ->
IO (Ptr MutableTree)
mutableTreeNewFromCommit ::
(B.CallStack.HasCallStack, MonadIO m, OSTree.Repo.IsRepo a) =>
a
-> T.Text
-> m MutableTree
mutableTreeNewFromCommit :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsRepo a) =>
a -> Text -> m MutableTree
mutableTreeNewFromCommit a
repo Text
rev = IO MutableTree -> m MutableTree
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MutableTree -> m MutableTree)
-> IO MutableTree -> m MutableTree
forall a b. (a -> b) -> a -> b
$ do
repo' <- a -> IO (Ptr Repo)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
repo
rev' <- textToCString rev
onException (do
result <- propagateGError $ ostree_mutable_tree_new_from_commit repo' rev'
checkUnexpectedReturnNULL "mutableTreeNewFromCommit" result
result' <- (wrapObject MutableTree) result
touchManagedPtr repo
freeMem rev'
return result'
) (do
freeMem rev'
)
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "ostree_mutable_tree_check_error" ostree_mutable_tree_check_error ::
Ptr MutableTree ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeCheckError ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> m ()
mutableTreeCheckError :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> m ()
mutableTreeCheckError a
self = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
onException (do
_ <- propagateGError $ ostree_mutable_tree_check_error self'
touchManagedPtr self
return ()
) (do
return ()
)
#if defined(ENABLE_OVERLOADING)
data MutableTreeCheckErrorMethodInfo
instance (signature ~ (m ()), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeCheckErrorMethodInfo a signature where
overloadedMethod = mutableTreeCheckError
instance O.OverloadedMethodInfo MutableTreeCheckErrorMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeCheckError",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeCheckError"
})
#endif
foreign import ccall "ostree_mutable_tree_ensure_dir" ostree_mutable_tree_ensure_dir ::
Ptr MutableTree ->
CString ->
Ptr (Ptr MutableTree) ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeEnsureDir ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> T.Text
-> m (MutableTree)
mutableTreeEnsureDir :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> Text -> m MutableTree
mutableTreeEnsureDir a
self Text
name = IO MutableTree -> m MutableTree
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MutableTree -> m MutableTree)
-> IO MutableTree -> m MutableTree
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
name' <- textToCString name
outSubdir <- callocMem :: IO (Ptr (Ptr MutableTree))
onException (do
_ <- propagateGError $ ostree_mutable_tree_ensure_dir self' name' outSubdir
outSubdir' <- peek outSubdir
outSubdir'' <- (wrapObject MutableTree) outSubdir'
touchManagedPtr self
freeMem name'
freeMem outSubdir
return outSubdir''
) (do
freeMem name'
freeMem outSubdir
)
#if defined(ENABLE_OVERLOADING)
data MutableTreeEnsureDirMethodInfo
instance (signature ~ (T.Text -> m (MutableTree)), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeEnsureDirMethodInfo a signature where
overloadedMethod = mutableTreeEnsureDir
instance O.OverloadedMethodInfo MutableTreeEnsureDirMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeEnsureDir",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeEnsureDir"
})
#endif
foreign import ccall "ostree_mutable_tree_ensure_parent_dirs" ostree_mutable_tree_ensure_parent_dirs ::
Ptr MutableTree ->
Ptr (GPtrArray CString) ->
CString ->
Ptr (Ptr MutableTree) ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeEnsureParentDirs ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> [T.Text]
-> T.Text
-> m (MutableTree)
mutableTreeEnsureParentDirs :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> [Text] -> Text -> m MutableTree
mutableTreeEnsureParentDirs a
self [Text]
splitPath Text
metadataChecksum = IO MutableTree -> m MutableTree
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MutableTree -> m MutableTree)
-> IO MutableTree -> m MutableTree
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
splitPath' <- mapM textToCString splitPath
splitPath'' <- packGPtrArray splitPath'
metadataChecksum' <- textToCString metadataChecksum
outParent <- callocMem :: IO (Ptr (Ptr MutableTree))
onException (do
_ <- propagateGError $ ostree_mutable_tree_ensure_parent_dirs self' splitPath'' metadataChecksum' outParent
outParent' <- peek outParent
outParent'' <- (wrapObject MutableTree) outParent'
touchManagedPtr self
mapPtrArray freeMem splitPath''
unrefPtrArray splitPath''
freeMem metadataChecksum'
freeMem outParent
return outParent''
) (do
mapPtrArray freeMem splitPath''
unrefPtrArray splitPath''
freeMem metadataChecksum'
freeMem outParent
)
#if defined(ENABLE_OVERLOADING)
data MutableTreeEnsureParentDirsMethodInfo
instance (signature ~ ([T.Text] -> T.Text -> m (MutableTree)), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeEnsureParentDirsMethodInfo a signature where
overloadedMethod = mutableTreeEnsureParentDirs
instance O.OverloadedMethodInfo MutableTreeEnsureParentDirsMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeEnsureParentDirs",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeEnsureParentDirs"
})
#endif
foreign import ccall "ostree_mutable_tree_fill_empty_from_dirtree" ostree_mutable_tree_fill_empty_from_dirtree ::
Ptr MutableTree ->
Ptr OSTree.Repo.Repo ->
CString ->
CString ->
IO CInt
mutableTreeFillEmptyFromDirtree ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a, OSTree.Repo.IsRepo b) =>
a
-> b
-> T.Text
-> T.Text
-> m Bool
mutableTreeFillEmptyFromDirtree :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsMutableTree a, IsRepo b) =>
a -> b -> Text -> Text -> m Bool
mutableTreeFillEmptyFromDirtree a
self b
repo Text
contentsChecksum Text
metadataChecksum = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
repo' <- unsafeManagedPtrCastPtr repo
contentsChecksum' <- textToCString contentsChecksum
metadataChecksum' <- textToCString metadataChecksum
result <- ostree_mutable_tree_fill_empty_from_dirtree self' repo' contentsChecksum' metadataChecksum'
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
touchManagedPtr self
touchManagedPtr repo
freeMem contentsChecksum'
freeMem metadataChecksum'
return result'
#if defined(ENABLE_OVERLOADING)
data MutableTreeFillEmptyFromDirtreeMethodInfo
instance (signature ~ (b -> T.Text -> T.Text -> m Bool), MonadIO m, IsMutableTree a, OSTree.Repo.IsRepo b) => O.OverloadedMethod MutableTreeFillEmptyFromDirtreeMethodInfo a signature where
overloadedMethod = mutableTreeFillEmptyFromDirtree
instance O.OverloadedMethodInfo MutableTreeFillEmptyFromDirtreeMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeFillEmptyFromDirtree",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeFillEmptyFromDirtree"
})
#endif
foreign import ccall "ostree_mutable_tree_get_contents_checksum" ostree_mutable_tree_get_contents_checksum ::
Ptr MutableTree ->
IO CString
mutableTreeGetContentsChecksum ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> m T.Text
mutableTreeGetContentsChecksum :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> m Text
mutableTreeGetContentsChecksum a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
result <- ostree_mutable_tree_get_contents_checksum self'
checkUnexpectedReturnNULL "mutableTreeGetContentsChecksum" result
result' <- cstringToText result
touchManagedPtr self
return result'
#if defined(ENABLE_OVERLOADING)
data MutableTreeGetContentsChecksumMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeGetContentsChecksumMethodInfo a signature where
overloadedMethod = mutableTreeGetContentsChecksum
instance O.OverloadedMethodInfo MutableTreeGetContentsChecksumMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeGetContentsChecksum",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeGetContentsChecksum"
})
#endif
foreign import ccall "ostree_mutable_tree_get_files" ostree_mutable_tree_get_files ::
Ptr MutableTree ->
IO (Ptr (GHashTable CString CString))
mutableTreeGetFiles ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> m (Map.Map T.Text T.Text)
mutableTreeGetFiles :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> m (Map Text Text)
mutableTreeGetFiles a
self = IO (Map Text Text) -> m (Map Text Text)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Map Text Text) -> m (Map Text Text))
-> IO (Map Text Text) -> m (Map Text Text)
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
result <- ostree_mutable_tree_get_files self'
checkUnexpectedReturnNULL "mutableTreeGetFiles" result
result' <- unpackGHashTable result
let result'' = (PtrWrapped CString -> CString)
-> [(PtrWrapped CString, PtrWrapped CString)]
-> [(CString, PtrWrapped CString)]
forall a c b. (a -> c) -> [(a, b)] -> [(c, b)]
mapFirst PtrWrapped CString -> CString
B.GHT.cstringUnpackPtr [(PtrWrapped CString, PtrWrapped CString)]
result'
result''' <- mapFirstA cstringToText result''
let result'''' = (PtrWrapped CString -> CString)
-> [(Text, PtrWrapped CString)] -> [(Text, CString)]
forall b c a. (b -> c) -> [(a, b)] -> [(a, c)]
mapSecond PtrWrapped CString -> CString
B.GHT.cstringUnpackPtr [(Text, PtrWrapped CString)]
result'''
result''''' <- mapSecondA cstringToText result''''
let result'''''' = [(Text, Text)] -> Map Text Text
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList [(Text, Text)]
result'''''
touchManagedPtr self
return result''''''
#if defined(ENABLE_OVERLOADING)
data MutableTreeGetFilesMethodInfo
instance (signature ~ (m (Map.Map T.Text T.Text)), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeGetFilesMethodInfo a signature where
overloadedMethod = mutableTreeGetFiles
instance O.OverloadedMethodInfo MutableTreeGetFilesMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeGetFiles",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeGetFiles"
})
#endif
foreign import ccall "ostree_mutable_tree_get_metadata_checksum" ostree_mutable_tree_get_metadata_checksum ::
Ptr MutableTree ->
IO CString
mutableTreeGetMetadataChecksum ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> m T.Text
mutableTreeGetMetadataChecksum :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> m Text
mutableTreeGetMetadataChecksum a
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
result <- ostree_mutable_tree_get_metadata_checksum self'
checkUnexpectedReturnNULL "mutableTreeGetMetadataChecksum" result
result' <- cstringToText result
touchManagedPtr self
return result'
#if defined(ENABLE_OVERLOADING)
data MutableTreeGetMetadataChecksumMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeGetMetadataChecksumMethodInfo a signature where
overloadedMethod = mutableTreeGetMetadataChecksum
instance O.OverloadedMethodInfo MutableTreeGetMetadataChecksumMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeGetMetadataChecksum",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeGetMetadataChecksum"
})
#endif
#if defined(ENABLE_OVERLOADING)
data MutableTreeGetSubdirsMethodInfo
instance (p ~ (), o ~ O.UnsupportedMethodError "getSubdirs" MutableTree) => O.OverloadedMethod MutableTreeGetSubdirsMethodInfo o p where
overloadedMethod = undefined
instance (o ~ O.UnsupportedMethodError "getSubdirs" MutableTree) => O.OverloadedMethodInfo MutableTreeGetSubdirsMethodInfo o where
overloadedMethodInfo = undefined
#endif
foreign import ccall "ostree_mutable_tree_lookup" ostree_mutable_tree_lookup ::
Ptr MutableTree ->
CString ->
Ptr CString ->
Ptr (Ptr MutableTree) ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeLookup ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> T.Text
-> m ((Maybe T.Text, Maybe MutableTree))
mutableTreeLookup :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> Text -> m (Maybe Text, Maybe MutableTree)
mutableTreeLookup a
self Text
name = IO (Maybe Text, Maybe MutableTree)
-> m (Maybe Text, Maybe MutableTree)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text, Maybe MutableTree)
-> m (Maybe Text, Maybe MutableTree))
-> IO (Maybe Text, Maybe MutableTree)
-> m (Maybe Text, Maybe MutableTree)
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
name' <- textToCString name
outFileChecksum <- callocMem :: IO (Ptr CString)
outSubdir <- callocMem :: IO (Ptr (Ptr MutableTree))
onException (do
_ <- propagateGError $ ostree_mutable_tree_lookup self' name' outFileChecksum outSubdir
outFileChecksum' <- peek outFileChecksum
maybeOutFileChecksum' <- convertIfNonNull outFileChecksum' $ \CString
outFileChecksum'' -> do
outFileChecksum''' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
outFileChecksum''
return outFileChecksum'''
freeMem outFileChecksum'
outSubdir' <- peek outSubdir
maybeOutSubdir' <- convertIfNonNull outSubdir' $ \Ptr MutableTree
outSubdir'' -> do
outSubdir''' <- ((ManagedPtr MutableTree -> MutableTree)
-> Ptr MutableTree -> IO MutableTree
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr MutableTree -> MutableTree
MutableTree) Ptr MutableTree
outSubdir''
return outSubdir'''
touchManagedPtr self
freeMem name'
freeMem outFileChecksum
freeMem outSubdir
return (maybeOutFileChecksum', maybeOutSubdir')
) (do
freeMem name'
freeMem outFileChecksum
freeMem outSubdir
)
#if defined(ENABLE_OVERLOADING)
data MutableTreeLookupMethodInfo
instance (signature ~ (T.Text -> m ((Maybe T.Text, Maybe MutableTree))), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeLookupMethodInfo a signature where
overloadedMethod = mutableTreeLookup
instance O.OverloadedMethodInfo MutableTreeLookupMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeLookup",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeLookup"
})
#endif
foreign import ccall "ostree_mutable_tree_remove" ostree_mutable_tree_remove ::
Ptr MutableTree ->
CString ->
CInt ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeRemove ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> T.Text
-> Bool
-> m ()
mutableTreeRemove :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> Text -> Bool -> m ()
mutableTreeRemove a
self Text
name Bool
allowNoent = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
name' <- textToCString name
let allowNoent' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
P.fromEnum) Bool
allowNoent
onException (do
_ <- propagateGError $ ostree_mutable_tree_remove self' name' allowNoent'
touchManagedPtr self
freeMem name'
return ()
) (do
freeMem name'
)
#if defined(ENABLE_OVERLOADING)
data MutableTreeRemoveMethodInfo
instance (signature ~ (T.Text -> Bool -> m ()), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeRemoveMethodInfo a signature where
overloadedMethod = mutableTreeRemove
instance O.OverloadedMethodInfo MutableTreeRemoveMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeRemove",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeRemove"
})
#endif
foreign import ccall "ostree_mutable_tree_replace_file" ostree_mutable_tree_replace_file ::
Ptr MutableTree ->
CString ->
CString ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeReplaceFile ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> T.Text
-> T.Text
-> m ()
mutableTreeReplaceFile :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> Text -> Text -> m ()
mutableTreeReplaceFile a
self Text
name Text
checksum = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
name' <- textToCString name
checksum' <- textToCString checksum
onException (do
_ <- propagateGError $ ostree_mutable_tree_replace_file self' name' checksum'
touchManagedPtr self
freeMem name'
freeMem checksum'
return ()
) (do
freeMem name'
freeMem checksum'
)
#if defined(ENABLE_OVERLOADING)
data MutableTreeReplaceFileMethodInfo
instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeReplaceFileMethodInfo a signature where
overloadedMethod = mutableTreeReplaceFile
instance O.OverloadedMethodInfo MutableTreeReplaceFileMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeReplaceFile",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeReplaceFile"
})
#endif
foreign import ccall "ostree_mutable_tree_set_contents_checksum" ostree_mutable_tree_set_contents_checksum ::
Ptr MutableTree ->
CString ->
IO ()
mutableTreeSetContentsChecksum ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> T.Text
-> m ()
mutableTreeSetContentsChecksum :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> Text -> m ()
mutableTreeSetContentsChecksum a
self Text
checksum = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
checksum' <- textToCString checksum
ostree_mutable_tree_set_contents_checksum self' checksum'
touchManagedPtr self
freeMem checksum'
return ()
#if defined(ENABLE_OVERLOADING)
data MutableTreeSetContentsChecksumMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeSetContentsChecksumMethodInfo a signature where
overloadedMethod = mutableTreeSetContentsChecksum
instance O.OverloadedMethodInfo MutableTreeSetContentsChecksumMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeSetContentsChecksum",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeSetContentsChecksum"
})
#endif
foreign import ccall "ostree_mutable_tree_set_metadata_checksum" ostree_mutable_tree_set_metadata_checksum ::
Ptr MutableTree ->
CString ->
IO ()
mutableTreeSetMetadataChecksum ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> T.Text
-> m ()
mutableTreeSetMetadataChecksum :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> Text -> m ()
mutableTreeSetMetadataChecksum a
self Text
checksum = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
checksum' <- textToCString checksum
ostree_mutable_tree_set_metadata_checksum self' checksum'
touchManagedPtr self
freeMem checksum'
return ()
#if defined(ENABLE_OVERLOADING)
data MutableTreeSetMetadataChecksumMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeSetMetadataChecksumMethodInfo a signature where
overloadedMethod = mutableTreeSetMetadataChecksum
instance O.OverloadedMethodInfo MutableTreeSetMetadataChecksumMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeSetMetadataChecksum",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeSetMetadataChecksum"
})
#endif
foreign import ccall "ostree_mutable_tree_walk" ostree_mutable_tree_walk ::
Ptr MutableTree ->
Ptr (GPtrArray CString) ->
Word32 ->
Ptr (Ptr MutableTree) ->
Ptr (Ptr GError) ->
IO CInt
mutableTreeWalk ::
(B.CallStack.HasCallStack, MonadIO m, IsMutableTree a) =>
a
-> [T.Text]
-> Word32
-> m (MutableTree)
mutableTreeWalk :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsMutableTree a) =>
a -> [Text] -> Word32 -> m MutableTree
mutableTreeWalk a
self [Text]
splitPath Word32
start = IO MutableTree -> m MutableTree
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MutableTree -> m MutableTree)
-> IO MutableTree -> m MutableTree
forall a b. (a -> b) -> a -> b
$ do
self' <- a -> IO (Ptr MutableTree)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
splitPath' <- mapM textToCString splitPath
splitPath'' <- packGPtrArray splitPath'
outSubdir <- callocMem :: IO (Ptr (Ptr MutableTree))
onException (do
_ <- propagateGError $ ostree_mutable_tree_walk self' splitPath'' start outSubdir
outSubdir' <- peek outSubdir
outSubdir'' <- (wrapObject MutableTree) outSubdir'
touchManagedPtr self
mapPtrArray freeMem splitPath''
unrefPtrArray splitPath''
freeMem outSubdir
return outSubdir''
) (do
mapPtrArray freeMem splitPath''
unrefPtrArray splitPath''
freeMem outSubdir
)
#if defined(ENABLE_OVERLOADING)
data MutableTreeWalkMethodInfo
instance (signature ~ ([T.Text] -> Word32 -> m (MutableTree)), MonadIO m, IsMutableTree a) => O.OverloadedMethod MutableTreeWalkMethodInfo a signature where
overloadedMethod = mutableTreeWalk
instance O.OverloadedMethodInfo MutableTreeWalkMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.OSTree.Objects.MutableTree.mutableTreeWalk",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-ostree-1.0.19/docs/GI-OSTree-Objects-MutableTree.html#v:mutableTreeWalk"
})
#endif