;;;; 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))) (defun create (head &key data sender) (make-instance 'message :head head :data data :sender sender)) (defmethod print-object ((msg message) stream) (format stream ">" (shape:head msg) (sender msg) (shape:data msg)))