#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Ggit.Structs.BranchEnumerator
(
BranchEnumerator(..) ,
noBranchEnumerator ,
#if ENABLE_OVERLOADING
BranchEnumeratorGetMethodInfo ,
#endif
branchEnumeratorGet ,
#if ENABLE_OVERLOADING
BranchEnumeratorIteratorMethodInfo ,
#endif
branchEnumeratorIterator ,
#if ENABLE_OVERLOADING
BranchEnumeratorNextMethodInfo ,
#endif
branchEnumeratorNext ,
#if ENABLE_OVERLOADING
BranchEnumeratorRefMethodInfo ,
#endif
branchEnumeratorRef ,
#if ENABLE_OVERLOADING
BranchEnumeratorUnrefMethodInfo ,
#endif
branchEnumeratorUnref ,
) 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.GClosure as B.GClosure
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.GI.Base.Properties as B.Properties
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 GHC.OverloadedLabels as OL
import {-# SOURCE #-} qualified GI.Ggit.Objects.Ref as Ggit.Ref
newtype BranchEnumerator = BranchEnumerator (ManagedPtr BranchEnumerator)
foreign import ccall "ggit_branch_enumerator_get_type" c_ggit_branch_enumerator_get_type ::
IO GType
instance BoxedObject BranchEnumerator where
boxedType _ = c_ggit_branch_enumerator_get_type
noBranchEnumerator :: Maybe BranchEnumerator
noBranchEnumerator = Nothing
#if ENABLE_OVERLOADING
instance O.HasAttributeList BranchEnumerator
type instance O.AttributeList BranchEnumerator = BranchEnumeratorAttributeList
type BranchEnumeratorAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "ggit_branch_enumerator_get" ggit_branch_enumerator_get ::
Ptr BranchEnumerator ->
IO (Ptr Ggit.Ref.Ref)
branchEnumeratorGet ::
(B.CallStack.HasCallStack, MonadIO m) =>
BranchEnumerator
-> m (Maybe Ggit.Ref.Ref)
branchEnumeratorGet enumerator = liftIO $ do
enumerator' <- unsafeManagedPtrGetPtr enumerator
result <- ggit_branch_enumerator_get enumerator'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapObject Ggit.Ref.Ref) result'
return result''
touchManagedPtr enumerator
return maybeResult
#if ENABLE_OVERLOADING
data BranchEnumeratorGetMethodInfo
instance (signature ~ (m (Maybe Ggit.Ref.Ref)), MonadIO m) => O.MethodInfo BranchEnumeratorGetMethodInfo BranchEnumerator signature where
overloadedMethod _ = branchEnumeratorGet
#endif
foreign import ccall "ggit_branch_enumerator_iterator" ggit_branch_enumerator_iterator ::
Ptr BranchEnumerator ->
IO (Ptr BranchEnumerator)
branchEnumeratorIterator ::
(B.CallStack.HasCallStack, MonadIO m) =>
BranchEnumerator
-> m (Maybe BranchEnumerator)
branchEnumeratorIterator enumerator = liftIO $ do
enumerator' <- unsafeManagedPtrGetPtr enumerator
result <- ggit_branch_enumerator_iterator enumerator'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newBoxed BranchEnumerator) result'
return result''
touchManagedPtr enumerator
return maybeResult
#if ENABLE_OVERLOADING
data BranchEnumeratorIteratorMethodInfo
instance (signature ~ (m (Maybe BranchEnumerator)), MonadIO m) => O.MethodInfo BranchEnumeratorIteratorMethodInfo BranchEnumerator signature where
overloadedMethod _ = branchEnumeratorIterator
#endif
foreign import ccall "ggit_branch_enumerator_next" ggit_branch_enumerator_next ::
Ptr BranchEnumerator ->
IO CInt
branchEnumeratorNext ::
(B.CallStack.HasCallStack, MonadIO m) =>
BranchEnumerator
-> m Bool
branchEnumeratorNext enumerator = liftIO $ do
enumerator' <- unsafeManagedPtrGetPtr enumerator
result <- ggit_branch_enumerator_next enumerator'
let result' = (/= 0) result
touchManagedPtr enumerator
return result'
#if ENABLE_OVERLOADING
data BranchEnumeratorNextMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo BranchEnumeratorNextMethodInfo BranchEnumerator signature where
overloadedMethod _ = branchEnumeratorNext
#endif
foreign import ccall "ggit_branch_enumerator_ref" ggit_branch_enumerator_ref ::
Ptr BranchEnumerator ->
IO (Ptr BranchEnumerator)
branchEnumeratorRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
BranchEnumerator
-> m (Maybe BranchEnumerator)
branchEnumeratorRef enumerator = liftIO $ do
enumerator' <- unsafeManagedPtrGetPtr enumerator
result <- ggit_branch_enumerator_ref enumerator'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed BranchEnumerator) result'
return result''
touchManagedPtr enumerator
return maybeResult
#if ENABLE_OVERLOADING
data BranchEnumeratorRefMethodInfo
instance (signature ~ (m (Maybe BranchEnumerator)), MonadIO m) => O.MethodInfo BranchEnumeratorRefMethodInfo BranchEnumerator signature where
overloadedMethod _ = branchEnumeratorRef
#endif
foreign import ccall "ggit_branch_enumerator_unref" ggit_branch_enumerator_unref ::
Ptr BranchEnumerator ->
IO ()
branchEnumeratorUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
BranchEnumerator
-> m ()
branchEnumeratorUnref enumerator = liftIO $ do
enumerator' <- unsafeManagedPtrGetPtr enumerator
ggit_branch_enumerator_unref enumerator'
touchManagedPtr enumerator
return ()
#if ENABLE_OVERLOADING
data BranchEnumeratorUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo BranchEnumeratorUnrefMethodInfo BranchEnumerator signature where
overloadedMethod _ = branchEnumeratorUnref
#endif
#if ENABLE_OVERLOADING
type family ResolveBranchEnumeratorMethod (t :: Symbol) (o :: *) :: * where
ResolveBranchEnumeratorMethod "get" o = BranchEnumeratorGetMethodInfo
ResolveBranchEnumeratorMethod "iterator" o = BranchEnumeratorIteratorMethodInfo
ResolveBranchEnumeratorMethod "next" o = BranchEnumeratorNextMethodInfo
ResolveBranchEnumeratorMethod "ref" o = BranchEnumeratorRefMethodInfo
ResolveBranchEnumeratorMethod "unref" o = BranchEnumeratorUnrefMethodInfo
ResolveBranchEnumeratorMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveBranchEnumeratorMethod t BranchEnumerator, O.MethodInfo info BranchEnumerator p) => OL.IsLabel t (BranchEnumerator -> 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