Parser

More convenient ways to define nodes and build the graph.

Auto implementation for Node trait

Implementing the Node trait for tons of custom types is a bit of a waste of time. for example you need to implement the id method for all of them, which just return a NodeId but you have to write such code over and over again.

Dagrs provides the procedural macro auto_node to simplify implementing the Node trait for custom types. As the following example goes, macro auto_node will add neccery fields to your custom type, and implement the Node trait for this type.

use dagrs::{auto_node}

#[auto_node]
struct MyNode {/*Put customized fields here.*/}

#[auto_node]
struct MyNodeGeneric<T, 'a> {
    my_field: Vec<T>,
    my_name: &'a str,
}

#[auto_node]
struct MyUnitNode;

Note:

The macro auto_node currently doen't work on tuple structs.