Macro dot_generator::edge[][src]

macro_rules! edge {
    ($l : expr => $r : expr) => { ... };
    ($l : expr => $r : expr $(=> $nexts : expr) +) => { ... };
    ($l : expr => $r : expr, $attrs : expr) => { ... };
    ($l : expr => $r : expr ; $($attrs : expr), +) => { ... };
    ($l : expr => $r : expr $(=> $nexts : expr) + ; $($attrs : expr), +) => { ... };
    ($l : expr => $r : expr $(=> $nexts : expr) +, $attrs : expr) => { ... };
}
Expand description

represents an edge in dot lang. #Example:

    fn edge_test() {
        use dot_generator::*;
        use dot_structures::*;

         assert_eq!(
            edge!(node_id!("1") => node_id!("2")),
            Edge { ty: EdgeTy::Pair(Vertex::N(node_id!("1")), Vertex::N(node_id!("2"))), attributes: vec![] }
        );
        assert_eq!(
            edge!(node_id!("1") => node_id!("2") => subgraph!("a")),
            Edge { ty: EdgeTy::Chain(vec![Vertex::N(node_id!("1")), Vertex::N(node_id!("2")), Vertex::S(subgraph!("a"))]), attributes: vec![] }
        );
        assert_eq!(
            edge!(node_id!("1") => node_id!("2"), vec![attr!("a","b")]),
            Edge { ty: EdgeTy::Pair(Vertex::N(node_id!("1")), Vertex::N(node_id!("2"))), attributes: vec![attr!("a","b")] }
        );
        assert_eq!(
            edge!(node_id!("1") => node_id!("2"); attr!("a","b")),
            Edge { ty: EdgeTy::Pair(Vertex::N(node_id!("1")), Vertex::N(node_id!("2"))), attributes: vec![attr!("a","b")] }
        );
    }