refactor core data types:simpliry message head, start with shape package

This commit is contained in:
Helmut Merz 2024-07-07 18:24:51 +02:00
parent 48e2fde93a
commit 4d199a1d92
2 changed files with 8 additions and 19 deletions

View file

@ -8,14 +8,6 @@
(in-package :scopes/core/message)
;;;; message-head
(defclass message-head ()
((domain)
(action)
(class)
(item)))
;;;; message
(defclass message ()
@ -24,18 +16,11 @@
(timestamp)
(data :accessor data :initarg :data :initform nil)))
(defun create (head-vals &key data sender)
(let ((h (make-instance 'message-head)))
(dolist (sl '(domain action class item))
(setf (slot-value h sl) (pop head-vals)))
(make-instance 'message :head h :data data :sender sender)))
(defun create (head &key data sender)
(make-instance 'message :head head :data data :sender sender))
(defmethod print-object ((msg message) stream)
(with-slots (domain action class item) (head msg)
(format stream
"<message (~a ~a ~a ~a) ~s <data ~s>>"
domain action class item (sender msg) (data msg))))
(format stream "<message ~s ~s <data ~s>>" (head msg) (sender msg) (data msg)))
(defun head-as-list (msg)
(with-slots (domain action class item) (head msg)
(list domain action class item)))
(head msg))

4
shape.lisp Normal file
View file

@ -0,0 +1,4 @@
;;;; cl-scopes/shape - really abstract basic data shape definitions.
(defpackage :scopes/shape
(:use :common-lisp))