1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-29 14:30:34 +02:00

Add a record type printer for vlists/vhashes.

* module/ice-9/vlist.scm (<vlist>): Add a record type printer.
This commit is contained in:
Ludovic Courtès 2010-12-07 20:43:49 +01:00
parent c6920dc8ba
commit a94469c651

View file

@ -19,6 +19,7 @@
(define-module (ice-9 vlist)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
#:use-module (srfi srfi-26)
#:export (vlist? vlist-cons vlist-head vlist-tail vlist-null?
@ -148,6 +149,21 @@
(base vlist-base)
(offset vlist-offset))
(set-record-type-printer! <vlist>
(lambda (vl port)
(cond ((vlist-null? vl)
(format port "#<vlist ()>"))
((block-hash-table (vlist-base vl))
(format port "#<vhash ~x ~a pairs>"
(object-address vl)
(vhash-fold (lambda (k v r)
(+ 1 r))
0
vl)))
(else
(format port "#<vlist ~a>"
(vlist->list vl))))))
(define vlist-null
;; The empty vlist.