diff options
author | Arun Isaac | 2021-12-13 18:03:42 +0530 |
---|---|---|
committer | Arun Isaac | 2021-12-13 18:06:11 +0530 |
commit | 1e36c8bdc8c22dee68a3aa292c1d318bd8e0b982 (patch) | |
tree | 7b039e87bdc3218feb70ecee5476cd96c454d852 /ccwl | |
parent | 1e2c9f9893ee2af5a2aa72f512742d101da8cf6a (diff) | |
download | ccwl-1e36c8bdc8c22dee68a3aa292c1d318bd8e0b982.tar.gz ccwl-1e36c8bdc8c22dee68a3aa292c1d318bd8e0b982.tar.lz ccwl-1e36c8bdc8c22dee68a3aa292c1d318bd8e0b982.zip |
ccwl: Support graphviz node ports.
* ccwl/graphviz.scm (<graph-port>): New type.
(serialize): Support <graph-port> objects.
* tests/graphviz.scm (graph-port): New function.
("serialize ports correctly"): New test case.
Diffstat (limited to 'ccwl')
-rw-r--r-- | ccwl/graphviz.scm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ccwl/graphviz.scm b/ccwl/graphviz.scm index a505530..3aa3f2a 100644 --- a/ccwl/graphviz.scm +++ b/ccwl/graphviz.scm @@ -63,6 +63,12 @@ language." "Construct <graph-node> object." (make-graph-node name properties)) +(define-immutable-record-type <graph-port> + (graph-port node port) + graph-port? + (node graph-port-node) + (port graph-port-name)) + (define-immutable-record-type <html-string> (html-string str) html-string? @@ -120,10 +126,14 @@ language." (define (serialize object) "Serialize OBJECT according to graphviz dot syntax. OBJECT may a -symbol, a string, or a <html-string> object." +symbol, a string, a <graph-port> object, or a <html-string> object." (cond ((symbol? object) (serialize (symbol->string object))) + ((graph-port? object) + (string-append (serialize (graph-port-node object)) + ":" + (serialize (graph-port-name object)))) ;; Surround HTML strings in <>, and don't escape. ((html-string? object) (format "<~a>" (html-string-underlying object))) |