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
- nodeChildIndex :: (HasCallStack, MonadIO m) => Node -> Ptr () -> m Int32
- nodeChildPosition :: (HasCallStack, MonadIO m) => Node -> Node -> m Int32
- nodeDepth :: (HasCallStack, MonadIO m) => Node -> m Word32
- nodeDestroy :: (HasCallStack, MonadIO m) => Node -> m ()
- nodeIsAncestor :: (HasCallStack, MonadIO m) => Node -> Node -> m Bool
- nodeMaxHeight :: (HasCallStack, MonadIO m) => Node -> m Word32
- nodeNChildren :: (HasCallStack, MonadIO m) => Node -> m Word32
- nodeNNodes :: (HasCallStack, MonadIO m) => Node -> [TraverseFlags] -> m Word32
- nodeReverseChildren :: (HasCallStack, MonadIO m) => Node -> m ()
- nodeUnlink :: (HasCallStack, MonadIO m) => Node -> m ()
- clearNodeChildren :: MonadIO m => Node -> m ()
- getNodeChildren :: MonadIO m => Node -> m (Maybe Node)
- setNodeChildren :: MonadIO m => Node -> Ptr Node -> m ()
- clearNodeData :: MonadIO m => Node -> m ()
- getNodeData :: MonadIO m => Node -> m (Ptr ())
- setNodeData :: MonadIO m => Node -> Ptr () -> m ()
- clearNodeNext :: MonadIO m => Node -> m ()
- getNodeNext :: MonadIO m => Node -> m (Maybe Node)
- setNodeNext :: MonadIO m => Node -> Ptr Node -> m ()
- clearNodeParent :: MonadIO m => Node -> m ()
- getNodeParent :: MonadIO m => Node -> m (Maybe Node)
- setNodeParent :: MonadIO m => Node -> Ptr Node -> m ()
- clearNodePrev :: MonadIO m => Node -> m ()
- getNodePrev :: MonadIO m => Node -> m (Maybe Node)
- setNodePrev :: MonadIO m => Node -> Ptr Node -> m ()
Exported types
WrappedPtr Node Source # | |
(~) AttrOpTag tag AttrSet => Constructible Node tag Source # | |
Methods
childIndex
:: (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
:: (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
destroy
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m () |
Removes root
and its children from the tree, freeing any memory
allocated.
isAncestor
:: (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
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m Word32 | Returns: the maximum height of the tree beneath |
nChildren
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m Word32 | Returns: the number of children of |
Gets the number of children of a Node
.
nNodes
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> [TraverseFlags] |
|
-> m Word32 | Returns: the number of nodes in the tree |
Gets the number of nodes in a tree.
reverseChildren
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m () |
Reverses the order of the children of a Node
.
(It doesn't change the order of the grandchildren.)
unlink
:: (HasCallStack, MonadIO m) | |
=> Node |
|
-> m () |
Unlinks a Node
from a tree, resulting in two separate trees.
Properties
children
clearNodeChildren :: MonadIO m => Node -> m () Source #
data
clearNodeData :: MonadIO m => Node -> m () Source #
next
clearNodeNext :: MonadIO m => Node -> m () Source #
parent
clearNodeParent :: MonadIO m => Node -> m () Source #
prev
clearNodePrev :: MonadIO m => Node -> m () Source #