summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Fitzgerald <fitzgen@gmail.com>2017-09-05 13:05:50 -0700
committerNick Fitzgerald <fitzgen@gmail.com>2017-09-06 13:46:58 -0700
commitaab7413f54d86e1bb74dca81d13596b526176762 (patch)
tree794b5221aabb7049cde736b08d259ae2d93effc0
parent310890c828c1b9d6c3de8bb61e67080e7d1f1966 (diff)
Reflect whitelisted status via color in graphviz dot files
This makes it so that whitelisted items and edges outgoing from them are black, while non-whitelisted items and their edges are gray.
-rw-r--r--src/ir/dot.rs22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/ir/dot.rs b/src/ir/dot.rs
index 6d666f09..1181c32c 100644
--- a/src/ir/dot.rs
+++ b/src/ir/dot.rs
@@ -32,10 +32,17 @@ where
let mut err: Option<io::Result<_>> = None;
for (id, item) in ctx.items() {
+ let is_whitelisted = ctx.whitelisted_items().contains(id);
+
try!(writeln!(
&mut dot_file,
- r#"{} [fontname="courier", label=< <table border="0" align="left">"#,
- id.as_usize()
+ r#"{} [fontname="courier", color={}, label=< <table border="0" align="left">"#,
+ id.as_usize(),
+ if is_whitelisted {
+ "black"
+ } else {
+ "gray"
+ }
));
try!(item.dot_attributes(ctx, &mut dot_file));
try!(writeln!(&mut dot_file, r#"</table> >];"#));
@@ -49,10 +56,15 @@ where
match writeln!(
&mut dot_file,
- "{} -> {} [label={:?}];",
+ "{} -> {} [label={:?}, color={}];",
id.as_usize(),
sub_id.as_usize(),
- edge_kind
+ edge_kind,
+ if is_whitelisted {
+ "black"
+ } else {
+ "gray"
+ }
) {
Ok(_) => {}
Err(e) => err = Some(Err(e)),
@@ -69,7 +81,7 @@ where
for child in module.children() {
try!(writeln!(
&mut dot_file,
- "{} -> {} [style=dotted]",
+ "{} -> {} [style=dotted, color=gray]",
item.id().as_usize(),
child.as_usize()
));