Useful custom-write for entities

This commit is contained in:
Tony Garnock-Jones 2021-06-03 15:57:28 +02:00
parent 40310a0eb3
commit 044860a3b5
1 changed files with 7 additions and 2 deletions

View File

@ -59,9 +59,13 @@
(require "field.rkt")
(require "support/counter.rkt")
(struct entity (assert retract message sync))
(struct entity (id assert retract message sync)
#:methods gen:custom-write
[(define (write-proc e port mode)
(fprintf port "#<entity:~a>" (entity-id e)))])
(define-struct-defaults make-entity entity
(#:assert [entity-assert #f]
(#:_id [entity-id (generate-entity-id)]
#:assert [entity-assert #f]
#:retract [entity-retract #f]
#:message [entity-message #f]
#:sync [entity-sync #f]))
@ -108,6 +112,7 @@
;;---------------------------------------------------------------------------
(define generate-entity-id (make-counter))
(define generate-actor-id (make-counter))
(define generate-turn-id (make-counter))
(define generate-handle (make-counter))