diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2016-10-20 08:47:03 +0200 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2016-12-14 21:43:06 +0100 |
commit | 51377437a1e37c9d5f2e137528e9c278b252d781 (patch) | |
tree | 91c2e1b1e0935f53b8ec16d468f47eade1f74823 | |
parent | 089f385a21806c00785fb0817e6ea590a5dd1412 (diff) | |
download | guix-51377437a1e37c9d5f2e137528e9c278b252d781.tar.gz guix-51377437a1e37c9d5f2e137528e9c278b252d781.zip |
graph: Backend must have name and description.
* guix/graph.scm (<graph-backend>): Add fields "name" and "description".
(%graphviz-backend): Provide values for name and description.
(export-graph): Ignore name and description when matching backends.
(graph-backend-name, graph-backend-description): New procedures.
* tests/graph.scm (make-recording-backend): Initialize name and
description fields of test graph-backend.
-rw-r--r-- | guix/graph.scm | 20 | ||||
-rw-r--r-- | tests/graph.scm | 3 |
2 files changed, 15 insertions, 8 deletions
diff --git a/guix/graph.scm b/guix/graph.scm index 735d340c2c..5cf98f0d54 100644 --- a/guix/graph.scm +++ b/guix/graph.scm @@ -44,6 +44,8 @@ %graphviz-backend graph-backend? graph-backend + graph-backend-name + graph-backend-description export-graph)) @@ -140,12 +142,14 @@ typically returned by 'node-edges' or 'node-back-edges'." ;;; (define-record-type <graph-backend> - (graph-backend prologue epilogue node edge) + (graph-backend name description prologue epilogue node edge) graph-backend? - (prologue graph-backend-prologue) - (epilogue graph-backend-epilogue) - (node graph-backend-node) - (edge graph-backend-edge)) + (name graph-backend-name) + (description graph-backend-description) + (prologue graph-backend-prologue) + (epilogue graph-backend-epilogue) + (node graph-backend-node) + (edge graph-backend-edge)) (define %colors ;; See colortbl.h in Graphviz. @@ -170,7 +174,9 @@ typically returned by 'node-edges' or 'node-back-edges'." id1 id2 (pop-color id1))) (define %graphviz-backend - (graph-backend emit-prologue emit-epilogue + (graph-backend "graphviz" + "Generate graph in DOT format for use with Graphviz." + emit-prologue emit-epilogue emit-node emit-edge)) (define* (export-graph sinks port @@ -181,7 +187,7 @@ typically returned by 'node-edges' or 'node-back-edges'." given BACKEND. Use NODE-TYPE to traverse the DAG. When REVERSE-EDGES? is true, draw reverse arrows." (match backend - (($ <graph-backend> emit-prologue emit-epilogue emit-node emit-edge) + (($ <graph-backend> _ _ emit-prologue emit-epilogue emit-node emit-edge) (emit-prologue (node-type-name node-type) port) (match node-type diff --git a/tests/graph.scm b/tests/graph.scm index f2e441cee6..bc4d62fe50 100644 --- a/tests/graph.scm +++ b/tests/graph.scm @@ -57,7 +57,8 @@ edges." (define (return) (values (reverse nodes) (reverse edges))) - (values (graph-backend (const #t) (const #t) + (values (graph-backend "test" "This is the test backend." + (const #t) (const #t) record-node record-edge) return))) |