Basic constructor macro for input-section structures.
(make-input-section [:title <title>]
[:items <items>])
This is the usual way to construct input-section structures. It simply conses together a structure with the specified fields.
This macro generates a new input-section structure from scratch. See also change-input-section, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-input-section (&rest args) (std::make-aggregate 'input-section args '((:title) (:items)) 'make-input-section nil))
Function:
(defun input-section (title items) (declare (xargs :guard (and (input-titlep title) (input-item-listp items)))) (declare (xargs :guard t)) (let ((__function__ 'input-section)) (declare (ignorable __function__)) (b* ((title (mbe :logic (input-title-fix title) :exec title)) (items (mbe :logic (input-item-list-fix items) :exec items))) (cons :input-section (list (cons 'title title) (cons 'items items))))))