Skip to content

Commit 8c6926d

Browse files
committed
---
yaml --- r: 231921 b: refs/heads/auto c: 1831bf8 h: refs/heads/master i: 231919: 63a9a06 v: v3
1 parent a4ced42 commit 8c6926d

File tree

2 files changed

+101
-75
lines changed

2 files changed

+101
-75
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
88
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
99
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1010
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
11-
refs/heads/auto: 01024c9f61e7e3cea6f898e781eb76556b379516
11+
refs/heads/auto: 1831bf8fb565d57b95d1ba6c8694abcaa9e889ea
1212
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1313
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336
1414
refs/tags/0.2: 1754d02027f2924bed83b0160ee340c7f41d5ea1

branches/auto/src/libgraphviz/lib.rs

Lines changed: 100 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -413,8 +413,9 @@ impl<'a> Id<'a> {
413413
{
414414
let mut chars = name.chars();
415415
match chars.next() {
416-
Some(c) if is_letter_or_underscore(c) => { ; },
417-
_ => return Err(())
416+
Some(c) if is_letter_or_underscore(c) => { ;
417+
}
418+
_ => return Err(()),
418419
}
419420
if !chars.all(is_constituent) {
420421
return Err(())
@@ -505,24 +506,28 @@ pub fn escape_html(s: &str) -> String {
505506
}
506507

507508
impl<'a> LabelText<'a> {
508-
pub fn label<S:IntoCow<'a, str>>(s: S) -> LabelText<'a> {
509+
pub fn label<S: IntoCow<'a, str>>(s: S) -> LabelText<'a> {
509510
LabelStr(s.into_cow())
510511
}
511512

512-
pub fn escaped<S:IntoCow<'a, str>>(s: S) -> LabelText<'a> {
513+
pub fn escaped<S: IntoCow<'a, str>>(s: S) -> LabelText<'a> {
513514
EscStr(s.into_cow())
514515
}
515516

516-
pub fn html<S:IntoCow<'a, str>>(s: S) -> LabelText<'a> {
517+
pub fn html<S: IntoCow<'a, str>>(s: S) -> LabelText<'a> {
517518
HtmlStr(s.into_cow())
518519
}
519520

520-
fn escape_char<F>(c: char, mut f: F) where F: FnMut(char) {
521+
fn escape_char<F>(c: char, mut f: F)
522+
where F: FnMut(char)
523+
{
521524
match c {
522525
// not escaping \\, since Graphviz escString needs to
523526
// interpret backslashes; see EscStr above.
524527
'\\' => f(c),
525-
_ => for c in c.escape_default() { f(c) }
528+
_ => for c in c.escape_default() {
529+
f(c)
530+
},
526531
}
527532
}
528533
fn escape_str(s: &str) -> String {
@@ -613,29 +618,42 @@ pub enum RenderOption {
613618
}
614619

615620
/// Returns vec holding all the default render options.
616-
pub fn default_options() -> Vec<RenderOption> { vec![] }
621+
pub fn default_options() -> Vec<RenderOption> {
622+
vec![]
623+
}
617624

618625
/// Renders directed graph `g` into the writer `w` in DOT syntax.
619626
/// (Simple wrapper around `render_opts` that passes a default set of options.)
620-
pub fn render<'a, N:Clone+'a, E:Clone+'a, G:Labeller<'a,N,E>+GraphWalk<'a,N,E>, W:Write>(
621-
g: &'a G,
622-
w: &mut W) -> io::Result<()> {
627+
pub fn render<'a,
628+
N: Clone + 'a,
629+
E: Clone + 'a,
630+
G: Labeller<'a, N, E> + GraphWalk<'a, N, E>,
631+
W: Write>
632+
(g: &'a G,
633+
w: &mut W)
634+
-> io::Result<()> {
623635
render_opts(g, w, &[])
624636
}
625637

626638
/// Renders directed graph `g` into the writer `w` in DOT syntax.
627639
/// (Main entry point for the library.)
628-
pub fn render_opts<'a, N:Clone+'a, E:Clone+'a, G:Labeller<'a,N,E>+GraphWalk<'a,N,E>, W:Write>(
629-
g: &'a G,
630-
w: &mut W,
631-
options: &[RenderOption]) -> io::Result<()>
632-
{
633-
fn writeln<W:Write>(w: &mut W, arg: &[&str]) -> io::Result<()> {
634-
for &s in arg { try!(w.write_all(s.as_bytes())); }
640+
pub fn render_opts<'a,
641+
N: Clone + 'a,
642+
E: Clone + 'a,
643+
G: Labeller<'a, N, E> + GraphWalk<'a, N, E>,
644+
W: Write>
645+
(g: &'a G,
646+
w: &mut W,
647+
options: &[RenderOption])
648+
-> io::Result<()> {
649+
fn writeln<W: Write>(w: &mut W, arg: &[&str]) -> io::Result<()> {
650+
for &s in arg {
651+
try!(w.write_all(s.as_bytes()));
652+
}
635653
write!(w, "\n")
636654
}
637655

638-
fn indent<W:Write>(w: &mut W) -> io::Result<()> {
656+
fn indent<W: Write>(w: &mut W) -> io::Result<()> {
639657
w.write_all(b" ")
640658
}
641659

@@ -748,7 +766,7 @@ mod tests {
748766
// A simple wrapper around LabelledGraph that forces the labels to
749767
// be emitted as EscStr.
750768
struct LabelledGraphWithEscStrs {
751-
graph: LabelledGraph
769+
graph: LabelledGraph,
752770
}
753771

754772
enum NodeLabels<L> {
@@ -762,13 +780,10 @@ mod tests {
762780
impl NodeLabels<&'static str> {
763781
fn to_opt_strs(self) -> Vec<Option<&'static str>> {
764782
match self {
765-
UnlabelledNodes(len)
766-
=> vec![None; len],
767-
AllNodesLabelled(lbls)
768-
=> lbls.into_iter().map(
783+
UnlabelledNodes(len) => vec![None; len],
784+
AllNodesLabelled(lbls) => lbls.into_iter().map(
769785
|l|Some(l)).collect(),
770-
SomeNodesLabelled(lbls)
771-
=> lbls.into_iter().collect(),
786+
SomeNodesLabelled(lbls) => lbls.into_iter().collect(),
772787
}
773788
}
774789

@@ -785,7 +800,8 @@ mod tests {
785800
fn new(name: &'static str,
786801
node_labels: Trivial,
787802
edges: Vec<Edge>,
788-
node_styles: Option<Vec<Style>>) -> LabelledGraph {
803+
node_styles: Option<Vec<Style>>)
804+
-> LabelledGraph {
789805
let count = node_labels.len();
790806
LabelledGraph {
791807
name: name,
@@ -794,21 +810,17 @@ mod tests {
794810
node_styles: match node_styles {
795811
Some(nodes) => nodes,
796812
None => vec![Style::None; count],
797-
}
813+
},
798814
}
799815
}
800816
}
801817

802818
impl LabelledGraphWithEscStrs {
803819
fn new(name: &'static str,
804820
node_labels: Trivial,
805-
edges: Vec<Edge>) -> LabelledGraphWithEscStrs {
806-
LabelledGraphWithEscStrs {
807-
graph: LabelledGraph::new(name,
808-
node_labels,
809-
edges,
810-
None)
811-
}
821+
edges: Vec<Edge>)
822+
-> LabelledGraphWithEscStrs {
823+
LabelledGraphWithEscStrs { graph: LabelledGraph::new(name, node_labels, edges, None) }
812824
}
813825
}
814826

@@ -826,61 +838,65 @@ mod tests {
826838
fn node_label(&'a self, n: &Node) -> LabelText<'a> {
827839
match self.node_labels[*n] {
828840
Some(ref l) => LabelStr(l.into_cow()),
829-
None => LabelStr(id_name(n).name()),
841+
None => LabelStr(id_name(n).name()),
830842
}
831843
}
832-
fn edge_label(&'a self, e: & &'a Edge) -> LabelText<'a> {
844+
fn edge_label(&'a self, e: &&'a Edge) -> LabelText<'a> {
833845
LabelStr(e.label.into_cow())
834846
}
835847
fn node_style(&'a self, n: &Node) -> Style {
836848
self.node_styles[*n]
837849
}
838-
fn edge_style(&'a self, e: & &'a Edge) -> Style {
850+
fn edge_style(&'a self, e: &&'a Edge) -> Style {
839851
e.style
840852
}
841853
}
842854

843855
impl<'a> Labeller<'a, Node, &'a Edge> for LabelledGraphWithEscStrs {
844-
fn graph_id(&'a self) -> Id<'a> { self.graph.graph_id() }
845-
fn node_id(&'a self, n: &Node) -> Id<'a> { self.graph.node_id(n) }
856+
fn graph_id(&'a self) -> Id<'a> {
857+
self.graph.graph_id()
858+
}
859+
fn node_id(&'a self, n: &Node) -> Id<'a> {
860+
self.graph.node_id(n)
861+
}
846862
fn node_label(&'a self, n: &Node) -> LabelText<'a> {
847863
match self.graph.node_label(n) {
848864
LabelStr(s) | EscStr(s) | HtmlStr(s) => EscStr(s),
849865
}
850866
}
851-
fn edge_label(&'a self, e: & &'a Edge) -> LabelText<'a> {
867+
fn edge_label(&'a self, e: &&'a Edge) -> LabelText<'a> {
852868
match self.graph.edge_label(e) {
853869
LabelStr(s) | EscStr(s) | HtmlStr(s) => EscStr(s),
854870
}
855871
}
856872
}
857873

858874
impl<'a> GraphWalk<'a, Node, &'a Edge> for LabelledGraph {
859-
fn nodes(&'a self) -> Nodes<'a,Node> {
875+
fn nodes(&'a self) -> Nodes<'a, Node> {
860876
(0..self.node_labels.len()).collect()
861877
}
862-
fn edges(&'a self) -> Edges<'a,&'a Edge> {
878+
fn edges(&'a self) -> Edges<'a, &'a Edge> {
863879
self.edges.iter().collect()
864880
}
865-
fn source(&'a self, edge: & &'a Edge) -> Node {
881+
fn source(&'a self, edge: &&'a Edge) -> Node {
866882
edge.from
867883
}
868-
fn target(&'a self, edge: & &'a Edge) -> Node {
884+
fn target(&'a self, edge: &&'a Edge) -> Node {
869885
edge.to
870886
}
871887
}
872888

873889
impl<'a> GraphWalk<'a, Node, &'a Edge> for LabelledGraphWithEscStrs {
874-
fn nodes(&'a self) -> Nodes<'a,Node> {
890+
fn nodes(&'a self) -> Nodes<'a, Node> {
875891
self.graph.nodes()
876892
}
877-
fn edges(&'a self) -> Edges<'a,&'a Edge> {
893+
fn edges(&'a self) -> Edges<'a, &'a Edge> {
878894
self.graph.edges()
879895
}
880-
fn source(&'a self, edge: & &'a Edge) -> Node {
896+
fn source(&'a self, edge: &&'a Edge) -> Node {
881897
edge.from
882898
}
883-
fn target(&'a self, edge: & &'a Edge) -> Node {
899+
fn target(&'a self, edge: &&'a Edge) -> Node {
884900
edge.to
885901
}
886902
}
@@ -899,7 +915,7 @@ mod tests {
899915

900916
#[test]
901917
fn empty_graph() {
902-
let labels : Trivial = UnlabelledNodes(0);
918+
let labels: Trivial = UnlabelledNodes(0);
903919
let r = test_input(LabelledGraph::new("empty_graph", labels, vec![], None));
904920
assert_eq!(r.unwrap(),
905921
r#"digraph empty_graph {
@@ -909,7 +925,7 @@ r#"digraph empty_graph {
909925

910926
#[test]
911927
fn single_node() {
912-
let labels : Trivial = UnlabelledNodes(1);
928+
let labels: Trivial = UnlabelledNodes(1);
913929
let r = test_input(LabelledGraph::new("single_node", labels, vec![], None));
914930
assert_eq!(r.unwrap(),
915931
r#"digraph single_node {
@@ -920,7 +936,7 @@ r#"digraph single_node {
920936

921937
#[test]
922938
fn single_node_with_style() {
923-
let labels : Trivial = UnlabelledNodes(1);
939+
let labels: Trivial = UnlabelledNodes(1);
924940
let styles = Some(vec![Style::Dashed]);
925941
let r = test_input(LabelledGraph::new("single_node", labels, vec![], styles));
926942
assert_eq!(r.unwrap(),
@@ -932,9 +948,11 @@ r#"digraph single_node {
932948

933949
#[test]
934950
fn single_edge() {
935-
let labels : Trivial = UnlabelledNodes(2);
936-
let result = test_input(LabelledGraph::new("single_edge", labels,
937-
vec![edge(0, 1, "E", Style::None)], None));
951+
let labels: Trivial = UnlabelledNodes(2);
952+
let result = test_input(LabelledGraph::new("single_edge",
953+
labels,
954+
vec![edge(0, 1, "E", Style::None)],
955+
None));
938956
assert_eq!(result.unwrap(),
939957
r#"digraph single_edge {
940958
N0[label="N0"];
@@ -946,9 +964,11 @@ r#"digraph single_edge {
946964

947965
#[test]
948966
fn single_edge_with_style() {
949-
let labels : Trivial = UnlabelledNodes(2);
950-
let result = test_input(LabelledGraph::new("single_edge", labels,
951-
vec![edge(0, 1, "E", Style::Bold)], None));
967+
let labels: Trivial = UnlabelledNodes(2);
968+
let result = test_input(LabelledGraph::new("single_edge",
969+
labels,
970+
vec![edge(0, 1, "E", Style::Bold)],
971+
None));
952972
assert_eq!(result.unwrap(),
953973
r#"digraph single_edge {
954974
N0[label="N0"];
@@ -960,10 +980,12 @@ r#"digraph single_edge {
960980

961981
#[test]
962982
fn test_some_labelled() {
963-
let labels : Trivial = SomeNodesLabelled(vec![Some("A"), None]);
983+
let labels: Trivial = SomeNodesLabelled(vec![Some("A"), None]);
964984
let styles = Some(vec![Style::None, Style::Dotted]);
965-
let result = test_input(LabelledGraph::new("test_some_labelled", labels,
966-
vec![edge(0, 1, "A-1", Style::None)], styles));
985+
let result = test_input(LabelledGraph::new("test_some_labelled",
986+
labels,
987+
vec![edge(0, 1, "A-1", Style::None)],
988+
styles));
967989
assert_eq!(result.unwrap(),
968990
r#"digraph test_some_labelled {
969991
N0[label="A"];
@@ -975,9 +997,11 @@ r#"digraph test_some_labelled {
975997

976998
#[test]
977999
fn single_cyclic_node() {
978-
let labels : Trivial = UnlabelledNodes(1);
979-
let r = test_input(LabelledGraph::new("single_cyclic_node", labels,
980-
vec![edge(0, 0, "E", Style::None)], None));
1000+
let labels: Trivial = UnlabelledNodes(1);
1001+
let r = test_input(LabelledGraph::new("single_cyclic_node",
1002+
labels,
1003+
vec![edge(0, 0, "E", Style::None)],
1004+
None));
9811005
assert_eq!(r.unwrap(),
9821006
r#"digraph single_cyclic_node {
9831007
N0[label="N0"];
@@ -989,11 +1013,11 @@ r#"digraph single_cyclic_node {
9891013
#[test]
9901014
fn hasse_diagram() {
9911015
let labels = AllNodesLabelled(vec!("{x,y}", "{x}", "{y}", "{}"));
992-
let r = test_input(LabelledGraph::new(
993-
"hasse_diagram", labels,
994-
vec![edge(0, 1, "", Style::None), edge(0, 2, "", Style::None),
1016+
let r = test_input(LabelledGraph::new("hasse_diagram",
1017+
labels,
1018+
vec![edge(0, 1, "", Style::None), edge(0, 2, "", Style::None),
9951019
edge(1, 3, "", Style::None), edge(2, 3, "", Style::None)],
996-
None));
1020+
None));
9971021
assert_eq!(r.unwrap(),
9981022
r#"digraph hasse_diagram {
9991023
N0[label="{x,y}"];
@@ -1024,9 +1048,9 @@ r#"digraph hasse_diagram {
10241048

10251049
let mut writer = Vec::new();
10261050

1027-
let g = LabelledGraphWithEscStrs::new(
1028-
"syntax_tree", labels,
1029-
vec![edge(0, 1, "then", Style::None), edge(0, 2, "else", Style::None),
1051+
let g = LabelledGraphWithEscStrs::new("syntax_tree",
1052+
labels,
1053+
vec![edge(0, 1, "then", Style::None), edge(0, 2, "else", Style::None),
10301054
edge(1, 3, ";", Style::None), edge(2, 3, ";", Style::None)]);
10311055

10321056
render(&g, &mut writer).unwrap();
@@ -1051,8 +1075,9 @@ r#"digraph syntax_tree {
10511075
fn simple_id_construction() {
10521076
let id1 = Id::new("hello");
10531077
match id1 {
1054-
Ok(_) => {;},
1055-
Err(..) => panic!("'hello' is not a valid value for id anymore")
1078+
Ok(_) => {;
1079+
}
1080+
Err(..) => panic!("'hello' is not a valid value for id anymore"),
10561081
}
10571082
}
10581083

@@ -1061,7 +1086,8 @@ r#"digraph syntax_tree {
10611086
let id2 = Id::new("Weird { struct : ure } !!!");
10621087
match id2 {
10631088
Ok(_) => panic!("graphviz id suddenly allows spaces, brackets and stuff"),
1064-
Err(..) => {;}
1089+
Err(..) => {;
1090+
}
10651091
}
10661092
}
10671093
}

0 commit comments

Comments
 (0)