Macro digraph

Source
macro_rules! digraph {
    () => { ... };
    (_ , $n:ty,_ ) => { ... };
    ( $id:ty,_,_) => { ... };
    ( _,_,$e:ty) => { ... };
    ( _, $n:ty, $e:ty) => { ... };
    ( $id:ty,_, $e:ty) => { ... };
    ( $id:ty,$n:ty, $e:ty) => { ... };
    (($($tps:tt)+) => $nodes:tt ) => { ... };
    (($($tps:tt)+)=> $nodes:tt => $edges:tt) => { ... };
    ( => $nodes:tt ) => { ... };
    (=> $nodes:tt => $edges:tt) => { ... };
}