gi-glib-0.2.46.12: GI/GLib/Structs/Tree.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
The GTree struct is an opaque data structure representing a
[balanced binary tree][glib-Balanced-Binary-Trees]. It should be
accessed only by using the following functions.
-}
module GI.GLib.Structs.Tree
(
-- * Exported types
Tree(..) ,
noTree ,
-- * Methods
-- ** treeDestroy
treeDestroy ,
-- ** treeHeight
treeHeight ,
-- ** treeInsert
treeInsert ,
-- ** treeLookupExtended
treeLookupExtended ,
-- ** treeNnodes
treeNnodes ,
-- ** treeRemove
treeRemove ,
-- ** treeReplace
treeReplace ,
-- ** treeSteal
treeSteal ,
-- ** treeUnref
treeUnref ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.GLib.Types
import GI.GLib.Callbacks
newtype Tree = Tree (ForeignPtr Tree)
noTree :: Maybe Tree
noTree = Nothing
-- method Tree::destroy
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_tree_destroy" g_tree_destroy ::
Ptr Tree -> -- _obj : TInterface "GLib" "Tree"
IO ()
treeDestroy ::
(MonadIO m) =>
Tree -> -- _obj
m ()
treeDestroy _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_tree_destroy _obj'
touchManagedPtr _obj
return ()
-- method Tree::height
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False
foreign import ccall "g_tree_height" g_tree_height ::
Ptr Tree -> -- _obj : TInterface "GLib" "Tree"
IO Int32
treeHeight ::
(MonadIO m) =>
Tree -> -- _obj
m Int32
treeHeight _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- g_tree_height _obj'
touchManagedPtr _obj
return result
-- method Tree::insert
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_tree_insert" g_tree_insert ::
Ptr Tree -> -- _obj : TInterface "GLib" "Tree"
Ptr () -> -- key : TBasicType TVoid
Ptr () -> -- value : TBasicType TVoid
IO ()
treeInsert ::
(MonadIO m) =>
Tree -> -- _obj
Ptr () -> -- key
Ptr () -> -- value
m ()
treeInsert _obj key value = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_tree_insert _obj' key value
touchManagedPtr _obj
return ()
-- method Tree::lookup_extended
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lookup_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "orig_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lookup_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "orig_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "g_tree_lookup_extended" g_tree_lookup_extended ::
Ptr Tree -> -- _obj : TInterface "GLib" "Tree"
Ptr () -> -- lookup_key : TBasicType TVoid
Ptr () -> -- orig_key : TBasicType TVoid
Ptr () -> -- value : TBasicType TVoid
IO CInt
treeLookupExtended ::
(MonadIO m) =>
Tree -> -- _obj
Ptr () -> -- lookup_key
Ptr () -> -- orig_key
Ptr () -> -- value
m Bool
treeLookupExtended _obj lookup_key orig_key value = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- g_tree_lookup_extended _obj' lookup_key orig_key value
let result' = (/= 0) result
touchManagedPtr _obj
return result'
-- method Tree::nnodes
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False
foreign import ccall "g_tree_nnodes" g_tree_nnodes ::
Ptr Tree -> -- _obj : TInterface "GLib" "Tree"
IO Int32
treeNnodes ::
(MonadIO m) =>
Tree -> -- _obj
m Int32
treeNnodes _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- g_tree_nnodes _obj'
touchManagedPtr _obj
return result
-- method Tree::remove
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "g_tree_remove" g_tree_remove ::
Ptr Tree -> -- _obj : TInterface "GLib" "Tree"
Ptr () -> -- key : TBasicType TVoid
IO CInt
treeRemove ::
(MonadIO m) =>
Tree -> -- _obj
Ptr () -> -- key
m Bool
treeRemove _obj key = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- g_tree_remove _obj' key
let result' = (/= 0) result
touchManagedPtr _obj
return result'
-- method Tree::replace
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_tree_replace" g_tree_replace ::
Ptr Tree -> -- _obj : TInterface "GLib" "Tree"
Ptr () -> -- key : TBasicType TVoid
Ptr () -> -- value : TBasicType TVoid
IO ()
treeReplace ::
(MonadIO m) =>
Tree -> -- _obj
Ptr () -> -- key
Ptr () -> -- value
m ()
treeReplace _obj key value = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_tree_replace _obj' key value
touchManagedPtr _obj
return ()
-- method Tree::steal
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "g_tree_steal" g_tree_steal ::
Ptr Tree -> -- _obj : TInterface "GLib" "Tree"
Ptr () -> -- key : TBasicType TVoid
IO CInt
treeSteal ::
(MonadIO m) =>
Tree -> -- _obj
Ptr () -> -- key
m Bool
treeSteal _obj key = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- g_tree_steal _obj' key
let result' = (/= 0) result
touchManagedPtr _obj
return result'
-- method Tree::unref
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "g_tree_unref" g_tree_unref ::
Ptr Tree -> -- _obj : TInterface "GLib" "Tree"
IO ()
treeUnref ::
(MonadIO m) =>
Tree -> -- _obj
m ()
treeUnref _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
g_tree_unref _obj'
touchManagedPtr _obj
return ()