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