cl-scopes/core/message.lisp

23 lines
674 B
Common Lisp

;;;; cl-scopes/core/message
(defpackage :scopes/core/message
(:use :common-lisp)
(:local-nicknames (:shape :scopes/shape))
(:export #:message #:create
#:head #:data #:sender))
(in-package :scopes/core/message)
;;;; message
(defclass message (shape:record)
((shape:head-fields :initform '(:domain :action :class :item))
(sender :reader sender :initarg :sender :initform nil)
(timestamp)))
(defun create (head &key data sender)
(make-instance 'message :head head :data data :sender sender))
(defmethod print-object ((msg message) stream)
(format stream "<message ~s ~s <data ~s>>"
(shape:head msg) (sender msg) (shape:data msg)))