dot_generator

Macro edge

Source
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")] }
        );
    }