- Bug fixes.
- Added sorting for nodes in a tree. Thanks to @teamplayer3 for the contribution.
- Added support to update the value of a node. Thanks to @teamplayer3 for the contribution.
- Changed the signature of the
Tree::traverse(&self, order: TraversalStrategy, node_id: &Q) -> Result<Vec<Q>>
method toTree::traverse(&self, node_id: &Q, order: TraversalStrategy) -> Result<Vec<Q>>
to conform to the project method signature convention. - Added more bug fixes and tests.
- The auto id feature now depends on epoch based id generation to generate unique ids for nodes.
- Added a
print_node_id
feature to enable printing of node ids in the tree visualization. It is disabled by default. - Added a
compact_serde
feature to enable compact serialization and deserialization of trees. It is disabled by default.
- Bug fixes.
- Improved api ergonomics by renaming functions to be more concise. The affected
methods are:
Node::get_parent
->Node::get_parent_id
Node::get_children
->Node::get_children_ids
- Clear the unwrapping landmines by returning
Result
instead of unwrapping internally which could lead to panicking in some cases. - Added support for
no_std
environments. - Changed the
unique_id
dependency tosequential_gen
to generate unique ids for nodes. - Add a way to get the ids of the ancestors of a node with the
Tree::get_ancestor_ids
method. Thanks to @PenguinWithATie for the contribution.
- Bug fixes.
- Improved documentation.
- Added automated node id generation behind the
auto_id
feature flag. This feature is disabled by default.
- Added support for tree and node hashing.
- Added feature to traverse the tree in any order.
- Added support for naming trees. The name is
optional
for backwards compatibility. It is specified when creating a tree. - Multiple nodes are now represented by the
Nodes
type, which is a collection ofNode
s.
- Improved support for serialization.
- Added more unit and regression tests.
- Getting children of a node now returns a reference to the ids of the children rather than the actual nodes.
- Changed the signatures of some tree methods to receive references to the node
ids instead of the nodes themselves. The
affected methods are:
Tree::get_node
Tree::remove_node
Tree::get_subtree
Tree::add_subtree
Initial release.
- Basic node creation and deletion.
- Basic tree structure.