define-struct-accessor ;
: define-struct-setter ( class name word type -- )
- [ "(>>" prepend ")" append ] 2dip
+ [ "<<" append ] 2dip
marshaller [ underlying>> ] \ bi* roll 4array >quotation
define-struct-accessor ;
: define-struct-constructor ( class -- )
{
- [ name>> "<" prepend ">" append create-in ]
+ [ name>> "<" prepend ">" append create-word-in ]
[ '[ _ new ] ]
- [ name>> '[ _ malloc-object >>underlying ] append ]
+ [ name>> '[ _ malloc-struct >>underlying ] append ]
[ name>> 1array ]
} cleave { } swap <effect> define-declared ;
PRIVATE>
:: define-struct-tuple ( name -- )
- name create-in :> class
+ name create-word-in :> class
class struct-wrapper { } define-tuple-class
class define-struct-constructor
name c-type fields>> [
class swap
{
- [ name>> { { CHAR: space CHAR: - } } substitute ]
+ [ name>> H{ { CHAR: space CHAR: - } } substitute ]
[ type>> ] [ reader>> ] [ writer>> ]
} cleave define-struct-accessors
] each ;