aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2025-06-20 12:27:31 +0100
committerArun Isaac2025-06-26 14:50:27 +0100
commit88d246b5421fc450be9f05b418a3f55c53117bd2 (patch)
treeb9e9d1494a6bace763cdb2aea599dd29c80bf243
parent2b90e57c16a31dd65c949a247b482134fba4a9b4 (diff)
downloadravanan-88d246b5421fc450be9f05b418a3f55c53117bd2.tar.gz
ravanan-88d246b5421fc450be9f05b418a3f55c53117bd2.tar.lz
ravanan-88d246b5421fc450be9f05b418a3f55c53117bd2.zip
propnet: Add record printers.
* ravanan/propnet.scm (<propagator>, <propnet-state>): Add record printers.
-rw-r--r--ravanan/propnet.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/ravanan/propnet.scm b/ravanan/propnet.scm
index bea91fb..610991d 100644
--- a/ravanan/propnet.scm
+++ b/ravanan/propnet.scm
@@ -68,6 +68,12 @@
(optional-inputs propagator-optional-inputs)
(outputs propagator-outputs))
+(set-record-type-printer! <propagator>
+ (lambda (record port)
+ (display "#<<propagator> " port)
+ (write (propagator-name record) port)
+ (display ">" port)))
+
(define-immutable-record-type <scheduler>
(scheduler schedule poll capture-output)
scheduler?
@@ -90,6 +96,18 @@
(propagators-in-flight propnet-state-propagators-in-flight)
(propagators-inbox propnet-state-propagators-inbox))
+(set-record-type-printer! <propnet-state>
+ (lambda (record port)
+ (display "#<<propnet-state> cells: " port)
+ (write (run-with-state (propnet-state-cells record)) port)
+ (display " cells-inbox: " port)
+ (write (run-with-state (propnet-state-cells-inbox record)) port)
+ (display " propagators-in-flight: " port)
+ (write (run-with-state (propnet-state-propagators-in-flight record)) port)
+ (display " propagators-inbox: " port)
+ (write (run-with-state (propnet-state-propagators-inbox record)) port)
+ (display ">" port)))
+
(define (partition-map pred proc lst)
"Partition @var{lst} into two lists using @var{pred} like @code{partition}. Then,
map @var{proc} over both the lists and return the resulting lists."