diff --git a/syndicate/actor.rkt b/syndicate/actor.rkt index 3c6a4db..1f6d865 100644 --- a/syndicate/actor.rkt +++ b/syndicate/actor.rkt @@ -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-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))