xtree 0.1.8

A simple general purpose tree data structure.
Documentation
extern crate xtree;

use xtree::*;

fn main(){
    let mut tree =
        tr!(1)
            / (tr!(2)
                / tr!(5)
                / tr!(6))
            / (tr!(3)
                / tr!(7)
                / tr!(8))
            / tr!(4);

    let mut cursor = tree.cursor_mut();
    cursor.move_child(0);
    *cursor.current() = 10;
    cursor.move_parent();
    cursor.move_child(1);
    let sub_tree = cursor.remove().unwrap();
    for (depth,node) in sub_tree.df_iter().depth(){
        for _ in 0..depth {
            print!("-");
        }
        println!("{}",node);
    }

    let mut cursor = tree.cursor();
    println!("children of root:");
    for child in cursor.children() {
        print!("{} ",child)
    }
    println!();
    println!("root:{}",cursor.current());
    cursor.move_child(0);
    println!("first child:{}",cursor.current());
    cursor.move_parent();
    cursor.move_child(1);
    println!("second child:{}",cursor.current());

    for itr in tree.df_iter_mut() {
        *itr += 1;
        print!("{} ",itr);
    }
    println!();

    for (depth,node) in tree.df_iter().depth(){
        for _ in 0..depth {
            print!("-");
        }
        println!("{}",node);
    }

    for itr in tree.bf_iter(){
        print!("{} ",itr);
    }
}