@@ -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,40 @@ 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 ,
543+ N : Clone + ' a ,
544+ E : Clone + ' a ,
545+ G : Labeller < ' a , N , E > + GraphWalk < ' a , N , E > ,
546+ W : Write >
547+ ( g : & ' a G ,
548+ w : & mut W )
549+ -> io:: Result < ( ) > {
541550 render_opts ( g, w, & [ ] )
542551}
543552
544553/// Renders directed graph `g` into the writer `w` in DOT syntax.
545554/// (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 < ( ) > {
555+ pub fn render_opts < ' a ,
556+ N : Clone + ' a ,
557+ E : Clone + ' a ,
558+ G : Labeller < ' a , N , E > + GraphWalk < ' a , N , E > ,
559+ W : Write >
560+ ( g : & ' a G ,
561+ w : & mut W ,
562+ options : & [ RenderOption ] )
563+ -> io:: Result < ( ) > {
564+ fn writeln < W : Write > ( w : & mut W , arg : & [ & str ] ) -> io:: Result < ( ) > {
552565 for & s in arg { try!( w. write_all ( s. as_bytes ( ) ) ) ; }
553566 write ! ( w, "\n " )
554567 }
555568
556- fn indent < W : Write > ( w : & mut W ) -> io:: Result < ( ) > {
569+ fn indent < W : Write > ( w : & mut W ) -> io:: Result < ( ) > {
557570 w. write_all ( b" " )
558571 }
559572
@@ -657,9 +670,7 @@ mod tests {
657670 }
658671
659672 impl LabelledGraph {
660- fn new ( name : & ' static str ,
661- node_labels : Trivial ,
662- edges : Vec < Edge > ) -> LabelledGraph {
673+ fn new ( name : & ' static str , node_labels : Trivial , edges : Vec < Edge > ) -> LabelledGraph {
663674 LabelledGraph {
664675 name : name,
665676 node_labels : node_labels. to_opt_strs ( ) ,
@@ -671,7 +682,8 @@ mod tests {
671682 impl LabelledGraphWithEscStrs {
672683 fn new ( name : & ' static str ,
673684 node_labels : Trivial ,
674- edges : Vec < Edge > ) -> LabelledGraphWithEscStrs {
685+ edges : Vec < Edge > )
686+ -> LabelledGraphWithEscStrs {
675687 LabelledGraphWithEscStrs {
676688 graph : LabelledGraph :: new ( name, node_labels, edges)
677689 }
@@ -695,52 +707,56 @@ mod tests {
695707 None => LabelStr ( id_name ( n) . name ( ) ) ,
696708 }
697709 }
698- fn edge_label ( & ' a self , e : & & ' a Edge ) -> LabelText < ' a > {
710+ fn edge_label ( & ' a self , e : & & ' a Edge ) -> LabelText < ' a > {
699711 LabelStr ( e. label . into_cow ( ) )
700712 }
701713 }
702714
703715 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) }
716+ fn graph_id ( & ' a self ) -> Id < ' a > {
717+ self . graph . graph_id ( )
718+ }
719+ fn node_id ( & ' a self , n : & Node ) -> Id < ' a > {
720+ self . graph . node_id ( n)
721+ }
706722 fn node_label ( & ' a self , n : & Node ) -> LabelText < ' a > {
707723 match self . graph . node_label ( n) {
708724 LabelStr ( s) | EscStr ( s) => EscStr ( s) ,
709725 }
710726 }
711- fn edge_label ( & ' a self , e : & & ' a Edge ) -> LabelText < ' a > {
727+ fn edge_label ( & ' a self , e : & & ' a Edge ) -> LabelText < ' a > {
712728 match self . graph . edge_label ( e) {
713729 LabelStr ( s) | EscStr ( s) => EscStr ( s) ,
714730 }
715731 }
716732 }
717733
718734 impl < ' a > GraphWalk < ' a , Node , & ' a Edge > for LabelledGraph {
719- fn nodes ( & ' a self ) -> Nodes < ' a , Node > {
735+ fn nodes ( & ' a self ) -> Nodes < ' a , Node > {
720736 ( 0 ..self . node_labels . len ( ) ) . collect ( )
721737 }
722- fn edges ( & ' a self ) -> Edges < ' a , & ' a Edge > {
738+ fn edges ( & ' a self ) -> Edges < ' a , & ' a Edge > {
723739 self . edges . iter ( ) . collect ( )
724740 }
725- fn source ( & ' a self , edge : & & ' a Edge ) -> Node {
741+ fn source ( & ' a self , edge : & & ' a Edge ) -> Node {
726742 edge. from
727743 }
728- fn target ( & ' a self , edge : & & ' a Edge ) -> Node {
744+ fn target ( & ' a self , edge : & & ' a Edge ) -> Node {
729745 edge. to
730746 }
731747 }
732748
733749 impl < ' a > GraphWalk < ' a , Node , & ' a Edge > for LabelledGraphWithEscStrs {
734- fn nodes ( & ' a self ) -> Nodes < ' a , Node > {
750+ fn nodes ( & ' a self ) -> Nodes < ' a , Node > {
735751 self . graph . nodes ( )
736752 }
737- fn edges ( & ' a self ) -> Edges < ' a , & ' a Edge > {
753+ fn edges ( & ' a self ) -> Edges < ' a , & ' a Edge > {
738754 self . graph . edges ( )
739755 }
740- fn source ( & ' a self , edge : & & ' a Edge ) -> Node {
756+ fn source ( & ' a self , edge : & & ' a Edge ) -> Node {
741757 edge. from
742758 }
743- fn target ( & ' a self , edge : & & ' a Edge ) -> Node {
759+ fn target ( & ' a self , edge : & & ' a Edge ) -> Node {
744760 edge. to
745761 }
746762 }
@@ -781,8 +797,7 @@ r#"digraph single_node {
781797 #[ test]
782798 fn single_edge ( ) {
783799 let labels : Trivial = UnlabelledNodes ( 2 ) ;
784- let result = test_input ( LabelledGraph :: new ( "single_edge" , labels,
785- vec ! ( edge( 0 , 1 , "E" ) ) ) ) ;
800+ let result = test_input ( LabelledGraph :: new ( "single_edge" , labels, vec ! ( edge( 0 , 1 , "E" ) ) ) ) ;
786801 assert_eq ! ( result. unwrap( ) ,
787802r#"digraph single_edge {
788803 N0[label="N0"];
@@ -795,7 +810,8 @@ r#"digraph single_edge {
795810 #[ test]
796811 fn test_some_labelled ( ) {
797812 let labels : Trivial = SomeNodesLabelled ( vec ! [ Some ( "A" ) , None ] ) ;
798- let result = test_input ( LabelledGraph :: new ( "test_some_labelled" , labels,
813+ let result = test_input ( LabelledGraph :: new ( "test_some_labelled" ,
814+ labels,
799815 vec ! [ edge( 0 , 1 , "A-1" ) ] ) ) ;
800816 assert_eq ! ( result. unwrap( ) ,
801817r#"digraph test_some_labelled {
@@ -809,8 +825,7 @@ r#"digraph test_some_labelled {
809825 #[ test]
810826 fn single_cyclic_node ( ) {
811827 let labels : Trivial = UnlabelledNodes ( 1 ) ;
812- let r = test_input ( LabelledGraph :: new ( "single_cyclic_node" , labels,
813- vec ! ( edge( 0 , 0 , "E" ) ) ) ) ;
828+ let r = test_input ( LabelledGraph :: new ( "single_cyclic_node" , labels, vec ! ( edge( 0 , 0 , "E" ) ) ) ) ;
814829 assert_eq ! ( r. unwrap( ) ,
815830r#"digraph single_cyclic_node {
816831 N0[label="N0"];
@@ -822,9 +837,9 @@ r#"digraph single_cyclic_node {
822837 #[ test]
823838 fn hasse_diagram ( ) {
824839 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 , "" ) ,
840+ let r = test_input ( LabelledGraph :: new ( "hasse_diagram" ,
841+ labels,
842+ vec ! ( edge( 0 , 1 , "" ) , edge( 0 , 2 , "" ) ,
828843 edge( 1 , 3 , "" ) , edge( 2 , 3 , "" ) ) ) ) ;
829844 assert_eq ! ( r. unwrap( ) ,
830845r#"digraph hasse_diagram {
@@ -856,9 +871,9 @@ r#"digraph hasse_diagram {
856871
857872 let mut writer = Vec :: new ( ) ;
858873
859- let g = LabelledGraphWithEscStrs :: new (
860- "syntax_tree" , labels,
861- vec ! ( edge( 0 , 1 , "then" ) , edge( 0 , 2 , "else" ) ,
874+ let g = LabelledGraphWithEscStrs :: new ( "syntax_tree" ,
875+ labels,
876+ vec ! ( edge( 0 , 1 , "then" ) , edge( 0 , 2 , "else" ) ,
862877 edge( 1 , 3 , ";" ) , edge( 2 , 3 , ";" ) ) ) ;
863878
864879 render ( & g, & mut writer) . unwrap ( ) ;
0 commit comments