Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
The Node
struct represents one node in a [n-ary tree][glib-N-ary-Trees].
- newtype Node = Node (ManagedPtr Node)
- newZeroNode :: MonadIO m => m Node
- noNode :: Maybe Node
- data NodeChildIndexMethodInfo
- nodeChildIndex :: (HasCallStack, MonadIO m) => Node -> Ptr () -> m Int32
- data NodeChildPositionMethodInfo
- nodeChildPosition :: (HasCallStack, MonadIO m) => Node -> Node -> m Int32
- data NodeDepthMethodInfo
- nodeDepth :: (HasCallStack, MonadIO m) => Node -> m Word32
- data NodeDestroyMethodInfo
- nodeDestroy :: (HasCallStack, MonadIO m) => Node -> m ()
- data NodeIsAncestorMethodInfo
- nodeIsAncestor :: (HasCallStack, MonadIO m) => Node -> Node -> m Bool
- data NodeMaxHeightMethodInfo
- nodeMaxHeight :: (HasCallStack, MonadIO m) => Node -> m Word32
- data NodeNChildrenMethodInfo
- nodeNChildren :: (HasCallStack, MonadIO m) => Node -> m Word32
- data NodeNNodesMethodInfo
- nodeNNodes :: (HasCallStack, MonadIO m) => Node -> [TraverseFlags] -> m Word32
- data NodeReverseChildrenMethodInfo
- nodeReverseChildren :: (HasCallStack, MonadIO m) => Node -> m ()
- data NodeUnlinkMethodInfo
- nodeUnlink :: (HasCallStack, MonadIO m) => Node -> m ()
- clearNodeChildren :: MonadIO m => Node -> m ()
- getNodeChildren :: MonadIO m => Node -> m (Maybe Node)
- node_children :: AttrLabelProxy "children"
- setNodeChildren :: MonadIO m => Node -> Ptr Node -> m ()
- clearNodeData :: MonadIO m => Node -> m ()
- getNodeData :: MonadIO m => Node -> m (Ptr ())
- node_data :: AttrLabelProxy "data"
- setNodeData :: MonadIO m => Node -> Ptr () -> m ()
- clearNodeNext :: MonadIO m => Node -> m ()
- getNodeNext :: MonadIO m => Node -> m (Maybe Node)
- node_next :: AttrLabelProxy "next"
- setNodeNext :: MonadIO m => Node -> Ptr Node -> m ()
- clearNodeParent :: MonadIO m => Node -> m ()
- getNodeParent :: MonadIO m => Node -> m (Maybe Node)
- node_parent :: AttrLabelProxy "parent"
- setNodeParent :: MonadIO m => Node -> Ptr Node -> m ()
- clearNodePrev :: MonadIO m => Node -> m ()
- getNodePrev :: MonadIO m => Node -> m (Maybe Node)
- node_prev :: AttrLabelProxy "prev"
- setNodePrev :: MonadIO m => Node -> Ptr Node -> m ()
Exported types
Methods
childIndex
data NodeChildIndexMethodInfo Source #
((~) * signature (Ptr () -> m Int32), MonadIO m) => MethodInfo * NodeChildIndexMethodInfo Node signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> Ptr () |
|
-> m Int32 | Returns: the index of the child of |
Gets the position of the first child of a Node
which contains the given data.
childPosition
data NodeChildPositionMethodInfo Source #
((~) * signature (Node -> m Int32), MonadIO m) => MethodInfo * NodeChildPositionMethodInfo Node signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> Node |
|
-> m Int32 | Returns: the position of |
Gets the position of a Node
with respect to its siblings.
child
must be a child of node
. The first child is numbered 0,
the second 1, and so on.
depth
data NodeDepthMethodInfo Source #
((~) * signature (m Word32), MonadIO m) => MethodInfo * NodeDepthMethodInfo Node signature Source # | |
destroy
data NodeDestroyMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * NodeDestroyMethodInfo Node signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m () |
Removes root
and its children from the tree, freeing any memory
allocated.
isAncestor
data NodeIsAncestorMethodInfo Source #
((~) * signature (Node -> m Bool), MonadIO m) => MethodInfo * NodeIsAncestorMethodInfo Node signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> Node |
|
-> m Bool | Returns: |
Returns True
if node
is an ancestor of descendant
.
This is true if node is the parent of descendant
,
or if node is the grandparent of descendant
etc.
maxHeight
data NodeMaxHeightMethodInfo Source #
((~) * signature (m Word32), MonadIO m) => MethodInfo * NodeMaxHeightMethodInfo Node signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m Word32 | Returns: the maximum height of the tree beneath |
nChildren
data NodeNChildrenMethodInfo Source #
((~) * signature (m Word32), MonadIO m) => MethodInfo * NodeNChildrenMethodInfo Node signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m Word32 | Returns: the number of children of |
Gets the number of children of a Node
.
nNodes
data NodeNNodesMethodInfo Source #
((~) * signature ([TraverseFlags] -> m Word32), MonadIO m) => MethodInfo * NodeNNodesMethodInfo Node signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> [TraverseFlags] |
|
-> m Word32 | Returns: the number of nodes in the tree |
Gets the number of nodes in a tree.
reverseChildren
data NodeReverseChildrenMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * NodeReverseChildrenMethodInfo Node signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m () |
Reverses the order of the children of a Node
.
(It doesn't change the order of the grandchildren.)
unlink
data NodeUnlinkMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * NodeUnlinkMethodInfo Node signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m () |
Unlinks a Node
from a tree, resulting in two separate trees.
Properties
children
clearNodeChildren :: MonadIO m => Node -> m () Source #
node_children :: AttrLabelProxy "children" Source #
data
clearNodeData :: MonadIO m => Node -> m () Source #
node_data :: AttrLabelProxy "data" Source #
next
clearNodeNext :: MonadIO m => Node -> m () Source #
node_next :: AttrLabelProxy "next" Source #
parent
clearNodeParent :: MonadIO m => Node -> m () Source #
node_parent :: AttrLabelProxy "parent" Source #
prev
clearNodePrev :: MonadIO m => Node -> m () Source #
node_prev :: AttrLabelProxy "prev" Source #