WITH-STRUCT is the WITH-SLOTS pendant for structures. I think there are different syntactic variants out there. I'm used to the one in SWANK which looks as follows:
(defstruct (foo-struct (:conc-name foo-struct.)) slot1 slot2 slot3)
(with-struct (foo-struct. slot1 slot2 slot3) *foo-struct* ...)
-T.