nb-tree 0.2.0-alpha01

Very simple tree structure with generic node and branch data.
Documentation
//! # Node & Branch Tree
//! This library provides tools to represent tree data with data associated to nodes and branches.
//! The trees are stored in a simple dynamic array (Vec) data structure.
//!
//! The main data structures are [`Tree`] and [`Path`] to build data trees and path to tree nodes.
//! The goal of this crate is to provide simple yet flexible structures that allow for custom node and branch types, tree building, diffing and patching.
//!
//! For more information about Trees and their usage,
//! see the [module level documentation](crate::tree).
//!
//! # What it is
//! A data structure to store and manipulate tree like data.
//!
//! # Properties
//!
//! The structure is an arborescence: it is directed, with nodes linking to their children.
//!
//! [`Tree`]: crate::tree::Tree
//! [`Path`]: crate::path::Path

// TODO
// //! The need for such types for the [retracer](https://crates.io/crates/retracer/) library was the initial motivation to create this library.

/// Macros to build trees and paths
#[macro_use]
mod macros;
/// Structures to describe a position in a [`Tree`].
///
/// [`Tree`]: crate::tree::Tree
pub mod path;
/// Structures to build and manipulate [`Tree`]s.
///
/// [`Tree`]: crate::tree::Tree
pub mod tree;

/// The [`nb_tree`] Prelude.
///
/// [`nb_tree`]: crate
pub mod prelude {
    //! A collection of all major structures of the library.
    pub use crate::{
        path::Path,
        tree::{
            entry::Entry, iter, CombinationMode, DiffMap, DiffNode, DiffTree, Tree, TreeBuilder,
        },
    };
}