@@ -432,15 +432,17 @@ pub trait Labeller<'a,N,E> {
432432}
433433
434434impl < ' a > LabelText < ' a > {
435- pub fn label < S : IntoCow < ' a , str > > ( s : S ) -> LabelText < ' a > {
435+ pub fn label < S : IntoCow < ' a , str > > ( s : S ) -> LabelText < ' a > {
436436 LabelStr ( s. into_cow ( ) )
437437 }
438438
439- pub fn escaped < S : IntoCow < ' a , str > > ( s : S ) -> LabelText < ' a > {
439+ pub fn escaped < S : IntoCow < ' a , str > > ( s : S ) -> LabelText < ' a > {
440440 EscStr ( s. into_cow ( ) )
441441 }
442442
443- fn escape_char < F > ( c : char , mut f : F ) where F : FnMut ( char ) {
443+ fn escape_char < F > ( c : char , mut f : F )
444+ where F : FnMut ( char )
445+ {
444446 match c {
445447 // not escaping \\, since Graphviz escString needs to
446448 // interpret backslashes; see EscStr above.
@@ -531,29 +533,36 @@ pub enum RenderOption {
531533}
532534
533535/// Returns vec holding all the default render options.
534- pub fn default_options ( ) -> Vec < RenderOption > { vec ! [ ] }
536+ pub fn default_options ( ) -> Vec < RenderOption > {
537+ vec ! [ ]
538+ }
535539
536540/// Renders directed graph `g` into the writer `w` in DOT syntax.
537541/// (Simple wrapper around `render_opts` that passes a default set of options.)
538- pub fn render < ' a , N : Clone +' a , E : Clone +' a , G : Labeller < ' a , N , E > +GraphWalk < ' a , N , E > , W : Write > (
539- g : & ' a G ,
540- w : & mut W ) -> io:: Result < ( ) > {
542+ pub fn render < ' a , N : Clone , ' a , E : Clone , ' a , G : Labeller < ' a , N , E > , GraphWalk <' a , N , E >, W : Write >
543+ ( g : & ' a G ,
544+ w : & mut W )
545+ -> io:: Result < ( ) > {
541546 render_opts ( g, w, & [ ] )
542547}
543548
544549/// Renders directed graph `g` into the writer `w` in DOT syntax.
545550/// (Main entry point for the library.)
546- pub fn render_opts < ' a , N : Clone +' a , E : Clone +' a , G : Labeller < ' a , N , E > +GraphWalk < ' a , N , E > , W : Write > (
547- g : & ' a G ,
548- w : & mut W ,
549- options : & [ RenderOption ] ) -> io:: Result < ( ) >
550- {
551- fn writeln < W : Write > ( w : & mut W , arg : & [ & str ] ) -> io:: Result < ( ) > {
551+ pub fn render_opts < ' a ,
552+ N : Clone , ' a ,
553+ E : Clone , ' a ,
554+ G : Labeller < ' a , N , E > , GraphWalk <' a , N , E >,
555+ W : Write >
556+ ( g : & ' a G ,
557+ w : & mut W ,
558+ options : & [ RenderOption ] )
559+ -> io:: Result < ( ) > {
560+ fn writeln < W : Write > ( w : & mut W , arg : & [ & str ] ) -> io:: Result < ( ) > {
552561 for & s in arg { try!( w. write_all ( s. as_bytes ( ) ) ) ; }
553562 write ! ( w, "\n " )
554563 }
555564
556- fn indent < W : Write > ( w : & mut W ) -> io:: Result < ( ) > {
565+ fn indent < W : Write > ( w : & mut W ) -> io:: Result < ( ) > {
557566 w. write_all ( b" " )
558567 }
559568
@@ -657,9 +666,7 @@ mod tests {
657666 }
658667
659668 impl LabelledGraph {
660- fn new ( name : & ' static str ,
661- node_labels : Trivial ,
662- edges : Vec < Edge > ) -> LabelledGraph {
669+ fn new ( name : & ' static str , node_labels : Trivial , edges : Vec < Edge > ) -> LabelledGraph {
663670 LabelledGraph {
664671 name : name,
665672 node_labels : node_labels. to_opt_strs ( ) ,
@@ -671,7 +678,8 @@ mod tests {
671678 impl LabelledGraphWithEscStrs {
672679 fn new ( name : & ' static str ,
673680 node_labels : Trivial ,
674- edges : Vec < Edge > ) -> LabelledGraphWithEscStrs {
681+ edges : Vec < Edge > )
682+ -> LabelledGraphWithEscStrs {
675683 LabelledGraphWithEscStrs {
676684 graph : LabelledGraph :: new ( name, node_labels, edges)
677685 }
@@ -695,52 +703,56 @@ mod tests {
695703 None => LabelStr ( id_name ( n) . name ( ) ) ,
696704 }
697705 }
698- fn edge_label ( & ' a self , e : & & ' a Edge ) -> LabelText < ' a > {
706+ fn edge_label ( & ' a self , e : & & ' a Edge ) -> LabelText < ' a > {
699707 LabelStr ( e. label . into_cow ( ) )
700708 }
701709 }
702710
703711 impl < ' a > Labeller < ' a , Node , & ' a Edge > for LabelledGraphWithEscStrs {
704- fn graph_id ( & ' a self ) -> Id < ' a > { self . graph . graph_id ( ) }
705- fn node_id ( & ' a self , n : & Node ) -> Id < ' a > { self . graph . node_id ( n) }
712+ fn graph_id ( & ' a self ) -> Id < ' a > {
713+ self . graph . graph_id ( )
714+ }
715+ fn node_id ( & ' a self , n : & Node ) -> Id < ' a > {
716+ self . graph . node_id ( n)
717+ }
706718 fn node_label ( & ' a self , n : & Node ) -> LabelText < ' a > {
707719 match self . graph . node_label ( n) {
708720 LabelStr ( s) | EscStr ( s) => EscStr ( s) ,
709721 }
710722 }
711- fn edge_label ( & ' a self , e : & & ' a Edge ) -> LabelText < ' a > {
723+ fn edge_label ( & ' a self , e : & & ' a Edge ) -> LabelText < ' a > {
712724 match self . graph . edge_label ( e) {
713725 LabelStr ( s) | EscStr ( s) => EscStr ( s) ,
714726 }
715727 }
716728 }
717729
718730 impl < ' a > GraphWalk < ' a , Node , & ' a Edge > for LabelledGraph {
719- fn nodes ( & ' a self ) -> Nodes < ' a , Node > {
731+ fn nodes ( & ' a self ) -> Nodes < ' a , Node > {
720732 ( 0 ..self . node_labels . len ( ) ) . collect ( )
721733 }
722- fn edges ( & ' a self ) -> Edges < ' a , & ' a Edge > {
734+ fn edges ( & ' a self ) -> Edges < ' a , & ' a Edge > {
723735 self . edges . iter ( ) . collect ( )
724736 }
725- fn source ( & ' a self , edge : & & ' a Edge ) -> Node {
737+ fn source ( & ' a self , edge : & & ' a Edge ) -> Node {
726738 edge. from
727739 }
728- fn target ( & ' a self , edge : & & ' a Edge ) -> Node {
740+ fn target ( & ' a self , edge : & & ' a Edge ) -> Node {
729741 edge. to
730742 }
731743 }
732744
733745 impl < ' a > GraphWalk < ' a , Node , & ' a Edge > for LabelledGraphWithEscStrs {
734- fn nodes ( & ' a self ) -> Nodes < ' a , Node > {
746+ fn nodes ( & ' a self ) -> Nodes < ' a , Node > {
735747 self . graph . nodes ( )
736748 }
737- fn edges ( & ' a self ) -> Edges < ' a , & ' a Edge > {
749+ fn edges ( & ' a self ) -> Edges < ' a , & ' a Edge > {
738750 self . graph . edges ( )
739751 }
740- fn source ( & ' a self , edge : & & ' a Edge ) -> Node {
752+ fn source ( & ' a self , edge : & & ' a Edge ) -> Node {
741753 edge. from
742754 }
743- fn target ( & ' a self , edge : & & ' a Edge ) -> Node {
755+ fn target ( & ' a self , edge : & & ' a Edge ) -> Node {
744756 edge. to
745757 }
746758 }
@@ -781,8 +793,7 @@ r#"digraph single_node {
781793 #[ test]
782794 fn single_edge ( ) {
783795 let labels : Trivial = UnlabelledNodes ( 2 ) ;
784- let result = test_input ( LabelledGraph :: new ( "single_edge" , labels,
785- vec ! ( edge( 0 , 1 , "E" ) ) ) ) ;
796+ let result = test_input ( LabelledGraph :: new ( "single_edge" , labels, vec ! ( edge( 0 , 1 , "E" ) ) ) ) ;
786797 assert_eq ! ( result. unwrap( ) ,
787798r#"digraph single_edge {
788799 N0[label="N0"];
@@ -795,7 +806,8 @@ r#"digraph single_edge {
795806 #[ test]
796807 fn test_some_labelled ( ) {
797808 let labels : Trivial = SomeNodesLabelled ( vec ! [ Some ( "A" ) , None ] ) ;
798- let result = test_input ( LabelledGraph :: new ( "test_some_labelled" , labels,
809+ let result = test_input ( LabelledGraph :: new ( "test_some_labelled" ,
810+ labels,
799811 vec ! [ edge( 0 , 1 , "A-1" ) ] ) ) ;
800812 assert_eq ! ( result. unwrap( ) ,
801813r#"digraph test_some_labelled {
@@ -809,8 +821,7 @@ r#"digraph test_some_labelled {
809821 #[ test]
810822 fn single_cyclic_node ( ) {
811823 let labels : Trivial = UnlabelledNodes ( 1 ) ;
812- let r = test_input ( LabelledGraph :: new ( "single_cyclic_node" , labels,
813- vec ! ( edge( 0 , 0 , "E" ) ) ) ) ;
824+ let r = test_input ( LabelledGraph :: new ( "single_cyclic_node" , labels, vec ! ( edge( 0 , 0 , "E" ) ) ) ) ;
814825 assert_eq ! ( r. unwrap( ) ,
815826r#"digraph single_cyclic_node {
816827 N0[label="N0"];
@@ -822,9 +833,9 @@ r#"digraph single_cyclic_node {
822833 #[ test]
823834 fn hasse_diagram ( ) {
824835 let labels = AllNodesLabelled ( vec ! ( "{x,y}" , "{x}" , "{y}" , "{}" ) ) ;
825- let r = test_input ( LabelledGraph :: new (
826- "hasse_diagram" , labels,
827- vec ! ( edge( 0 , 1 , "" ) , edge( 0 , 2 , "" ) ,
836+ let r = test_input ( LabelledGraph :: new ( "hasse_diagram" ,
837+ labels,
838+ vec ! ( edge( 0 , 1 , "" ) , edge( 0 , 2 , "" ) ,
828839 edge( 1 , 3 , "" ) , edge( 2 , 3 , "" ) ) ) ) ;
829840 assert_eq ! ( r. unwrap( ) ,
830841r#"digraph hasse_diagram {
@@ -856,9 +867,9 @@ r#"digraph hasse_diagram {
856867
857868 let mut writer = Vec :: new ( ) ;
858869
859- let g = LabelledGraphWithEscStrs :: new (
860- "syntax_tree" , labels,
861- vec ! ( edge( 0 , 1 , "then" ) , edge( 0 , 2 , "else" ) ,
870+ let g = LabelledGraphWithEscStrs :: new ( "syntax_tree" ,
871+ labels,
872+ vec ! ( edge( 0 , 1 , "then" ) , edge( 0 , 2 , "else" ) ,
862873 edge( 1 , 3 , ";" ) , edge( 2 , 3 , ";" ) ) ) ;
863874
864875 render ( & g, & mut writer) . unwrap ( ) ;
0 commit comments