{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Ggit.Structs.BranchEnumerator
(
BranchEnumerator(..) ,
noBranchEnumerator ,
#if defined(ENABLE_OVERLOADING)
ResolveBranchEnumeratorMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
BranchEnumeratorGetMethodInfo ,
#endif
branchEnumeratorGet ,
#if defined(ENABLE_OVERLOADING)
BranchEnumeratorIteratorMethodInfo ,
#endif
branchEnumeratorIterator ,
#if defined(ENABLE_OVERLOADING)
BranchEnumeratorNextMethodInfo ,
#endif
branchEnumeratorNext ,
#if defined(ENABLE_OVERLOADING)
BranchEnumeratorRefMethodInfo ,
#endif
branchEnumeratorRef ,
#if defined(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.GI.Base.Signals as B.Signals
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)
deriving (Eq)
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
instance B.GValue.IsGValue BranchEnumerator where
toGValue o = do
gtype <- c_ggit_branch_enumerator_get_type
B.ManagedPtr.withManagedPtr o (B.GValue.buildGValue gtype B.GValue.set_boxed)
fromGValue gv = do
ptr <- B.GValue.get_boxed gv :: IO (Ptr BranchEnumerator)
B.ManagedPtr.newBoxed BranchEnumerator ptr
noBranchEnumerator :: Maybe BranchEnumerator
noBranchEnumerator = Nothing
#if defined(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 defined(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 defined(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 defined(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 defined(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 defined(ENABLE_OVERLOADING)
data BranchEnumeratorUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo BranchEnumeratorUnrefMethodInfo BranchEnumerator signature where
overloadedMethod = branchEnumeratorUnref
#endif
#if defined(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 @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif