From ee9a861090733295ab07e197381d45b4e414724a Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Mon, 17 Dec 2018 21:39:09 -0800 Subject: [PATCH] extra --- xenomorph/xenomorph/struct.rkt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/xenomorph/xenomorph/struct.rkt b/xenomorph/xenomorph/struct.rkt index 95b8c3b9..ca47eb64 100644 --- a/xenomorph/xenomorph/struct.rkt +++ b/xenomorph/xenomorph/struct.rkt @@ -52,18 +52,15 @@ https://github.com/mbutterick/restructure/blob/master/src/Struct.coffee (define/augride (x:decode port parent [len 0]) (define res (setup-private-fields port parent len)) - (parse-fields port res @fields) - (unless (dict? res) - (raise-result-error 'x:struct-decode "dict" res)) - res) + (parse-fields port res @fields)) (define/override (decode port parent) (dict->mutable-hash (x:decode port parent))) (define/augride (x:encode field-data port [parent-arg #f]) - ;; check keys first, since `size` also relies on keys being valid (unless (dict? field-data) (raise-result-error 'x:struct-encode "dict" field-data)) + ;; check keys, because `size` also relies on keys being valid (unless (andmap (λ (field-key) (memq field-key (dict-keys field-data))) (dict-keys @fields)) (raise-argument-error 'x:struct-encode (format "dict that contains superset of xstruct keys: ~a"