From 5872c2512918bc9b97025cf135bf3eb673fd62be Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Fri, 6 Jun 2025 09:14:37 +0200 Subject: [PATCH] set-content: transparent update of content field of actor:message --- core/actor.lisp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/actor.lisp b/core/actor.lisp index 3d2fcb5..092635a 100644 --- a/core/actor.lisp +++ b/core/actor.lisp @@ -6,7 +6,7 @@ (:shape :scopes/shape) (:util :scopes/util)) (:export #:start #:stop #:create #:send - #:message #:content #:customer + #:message #:content #:customer #:set-content #:*logger* #:*root* #:echo #:inc #:lgi #:calculator #:plus #:minus #:show #:send-value)) @@ -31,6 +31,11 @@ (defun message (content &optional customer) (make-instance 'message :content content :customer customer)) +(defgeneric set-content (msg fn) + (:method (msg fn) (funcall fn msg)) + (:method ((msg message) fn) + (message (funcall fn (content msg)) (customer msg)))) + ;;;; actor loop (listener) (eval-when (:compile-toplevel :load-toplevel :execute)