module GI.GLib.Structs.SequenceIter
(
SequenceIter(..) ,
noSequenceIter ,
SequenceIterCompareMethodInfo ,
sequenceIterCompare ,
SequenceIterGetPositionMethodInfo ,
sequenceIterGetPosition ,
SequenceIterIsBeginMethodInfo ,
sequenceIterIsBegin ,
SequenceIterIsEndMethodInfo ,
sequenceIterIsEnd ,
) 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
newtype SequenceIter = SequenceIter (ManagedPtr SequenceIter)
instance WrappedPtr SequenceIter where
wrappedPtrCalloc = return nullPtr
wrappedPtrCopy = return
wrappedPtrFree = Nothing
noSequenceIter :: Maybe SequenceIter
noSequenceIter = Nothing
instance O.HasAttributeList SequenceIter
type instance O.AttributeList SequenceIter = SequenceIterAttributeList
type SequenceIterAttributeList = ('[ ] :: [(Symbol, *)])
foreign import ccall "g_sequence_iter_compare" g_sequence_iter_compare ::
Ptr SequenceIter ->
Ptr SequenceIter ->
IO Int32
sequenceIterCompare ::
(B.CallStack.HasCallStack, MonadIO m) =>
SequenceIter
-> SequenceIter
-> m Int32
sequenceIterCompare a b = liftIO $ do
a' <- unsafeManagedPtrGetPtr a
b' <- unsafeManagedPtrGetPtr b
result <- g_sequence_iter_compare a' b'
touchManagedPtr a
touchManagedPtr b
return result
data SequenceIterCompareMethodInfo
instance (signature ~ (SequenceIter -> m Int32), MonadIO m) => O.MethodInfo SequenceIterCompareMethodInfo SequenceIter signature where
overloadedMethod _ = sequenceIterCompare
foreign import ccall "g_sequence_iter_get_position" g_sequence_iter_get_position ::
Ptr SequenceIter ->
IO Int32
sequenceIterGetPosition ::
(B.CallStack.HasCallStack, MonadIO m) =>
SequenceIter
-> m Int32
sequenceIterGetPosition iter = liftIO $ do
iter' <- unsafeManagedPtrGetPtr iter
result <- g_sequence_iter_get_position iter'
touchManagedPtr iter
return result
data SequenceIterGetPositionMethodInfo
instance (signature ~ (m Int32), MonadIO m) => O.MethodInfo SequenceIterGetPositionMethodInfo SequenceIter signature where
overloadedMethod _ = sequenceIterGetPosition
foreign import ccall "g_sequence_iter_is_begin" g_sequence_iter_is_begin ::
Ptr SequenceIter ->
IO CInt
sequenceIterIsBegin ::
(B.CallStack.HasCallStack, MonadIO m) =>
SequenceIter
-> m Bool
sequenceIterIsBegin iter = liftIO $ do
iter' <- unsafeManagedPtrGetPtr iter
result <- g_sequence_iter_is_begin iter'
let result' = (/= 0) result
touchManagedPtr iter
return result'
data SequenceIterIsBeginMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo SequenceIterIsBeginMethodInfo SequenceIter signature where
overloadedMethod _ = sequenceIterIsBegin
foreign import ccall "g_sequence_iter_is_end" g_sequence_iter_is_end ::
Ptr SequenceIter ->
IO CInt
sequenceIterIsEnd ::
(B.CallStack.HasCallStack, MonadIO m) =>
SequenceIter
-> m Bool
sequenceIterIsEnd iter = liftIO $ do
iter' <- unsafeManagedPtrGetPtr iter
result <- g_sequence_iter_is_end iter'
let result' = (/= 0) result
touchManagedPtr iter
return result'
data SequenceIterIsEndMethodInfo
instance (signature ~ (m Bool), MonadIO m) => O.MethodInfo SequenceIterIsEndMethodInfo SequenceIter signature where
overloadedMethod _ = sequenceIterIsEnd
type family ResolveSequenceIterMethod (t :: Symbol) (o :: *) :: * where
ResolveSequenceIterMethod "compare" o = SequenceIterCompareMethodInfo
ResolveSequenceIterMethod "isBegin" o = SequenceIterIsBeginMethodInfo
ResolveSequenceIterMethod "isEnd" o = SequenceIterIsEndMethodInfo
ResolveSequenceIterMethod "getPosition" o = SequenceIterGetPositionMethodInfo
ResolveSequenceIterMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveSequenceIterMethod t SequenceIter, O.MethodInfo info SequenceIter p) => O.IsLabelProxy t (SequenceIter -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveSequenceIterMethod t SequenceIter, O.MethodInfo info SequenceIter p) => O.IsLabel t (SequenceIter -> p) where
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif