src/utilities.lisp: Share `int' to `sod' and `optparse' packages.
[sod] / src / classes.lisp
index a59a47c..1856b30 100644 (file)
   (:documentation
    "Describes an initialization argument defined by the user."))
 
+(defmethod print-object ((initarg sod-user-initarg) stream)
+  (maybe-print-unreadable-object (initarg stream :type t)
+    (pprint-c-type (sod-initarg-type initarg) stream
+                  (sod-initarg-name initarg))
+    (awhen (sod-initarg-default initarg)
+      (format stream " = ~A" it))))
+
 (export 'sod-slot-initarg)
 (defclass sod-slot-initarg (sod-initarg)
   ((slot :initarg :slot :type sod-slot :reader sod-initarg-slot))
   (:documentation
    "Describes an initialization argument used to initialize a slot."))
 
+(defmethod print-object ((initarg sod-slot-initarg) stream)
+  (maybe-print-unreadable-object (initarg stream :type t)
+    (pprint-c-type (sod-initarg-type initarg) stream
+                  (sod-initarg-name initarg))
+    (format stream " for ~A" (sod-initarg-slot initarg))))
+
 ;;;--------------------------------------------------------------------------
 ;;; Messages and methods.