diff --git a/xenomorph/xenomorph/struct.rkt b/xenomorph/xenomorph/struct.rkt index 9f2ebeb7..e045062d 100644 --- a/xenomorph/xenomorph/struct.rkt +++ b/xenomorph/xenomorph/struct.rkt @@ -1,4 +1,4 @@ -#lang racket/base +#lang debug racket/base (require racket/dict racket/class racket/sequence @@ -66,6 +66,7 @@ https://github.com/mbutterick/restructure/blob/master/src/Struct.coffee x:pointer-size-key 0)) (hash-set! parent x:pointer-offset-key (+ (pos port) (size field-data parent #f))) (for ([(key type) (in-dict @fields)]) + #R (list key 'in-struct) (send type encode (dict-ref field-data key) port parent)) (for ([ptr (in-list (hash-ref parent x:pointers-key))]) (match ptr diff --git a/xenomorph/xenomorph/versioned-struct.rkt b/xenomorph/xenomorph/versioned-struct.rkt index 6a29a4bd..758c376c 100644 --- a/xenomorph/xenomorph/versioned-struct.rkt +++ b/xenomorph/xenomorph/versioned-struct.rkt @@ -80,6 +80,7 @@ https://github.com/mbutterick/restructure/blob/master/src/VersionedStruct.coffee (unless (andmap (λ (key) (member key (dict-keys field-data))) (dict-keys fields)) (raise-argument-error 'x:versioned-struct-encode (format "hash that contains superset of xversioned-struct keys: ~a" (dict-keys fields)) (dict-keys field-data))) (for ([(key type) (in-dict fields)]) + #R (list key 'in-verseioned-struct) (send type encode (dict-ref field-data key) port parent)) (for ([ptr (in-list (dict-ref parent x:pointers-key))]) (match ptr