change quad printing

main
Matthew Butterick 5 years ago
parent 8b3fadd348
commit f45b95b6bb

@ -1,5 +1,5 @@
#lang debug racket/base
(require racket/struct racket/format racket/string racket/promise racket/dict racket/match)
(require racket/struct racket/format racket/list racket/string racket/promise racket/dict racket/match)
(provide (all-defined-out))
(module+ test (require rackunit))
@ -26,8 +26,8 @@
(and
;; exclude attrs from initial comparison
(for/and ([getter (in-list (list quad-elems quad-size quad-in quad-out quad-inner
quad-offset quad-origin quad-printable
quad-pre-draw quad-post-draw quad-draw))])
quad-offset quad-origin quad-printable
quad-pre-draw quad-post-draw quad-draw))])
(equal? (getter q1) (getter q2)))
;; and compare them key-by-key
(hashes-equal? (quad-attrs q1) (quad-attrs q2))))
@ -44,8 +44,12 @@
pre-draw
post-draw
draw)
#:property prop:custom-write (λ (v p w?) (display
(format "<quad ~a>" (string-join (map ~v (quad-elems v)) " ")) p))
#:property prop:custom-write
(λ (v p w?) (display
(format "<quad ~a~a>"
(string-join (map ~v (flatten (hash->list (quad-attrs v))))
" " #:before-first "(" #:after-last ")")
(string-join (map ~v (quad-elems v)) " " #:before-first " ")) p))
#:methods gen:equal+hash
[(define equal-proc quad=?)
(define (hash-proc h recur) (equal-hash-code h))

Loading…
Cancel
Save