alien.marshall.structs: generate struct constructors
parent
ac6c207de8
commit
c4aabe2fb4
|
@ -26,9 +26,18 @@ M: struct-wrapper dispose* underlying>> free ;
|
||||||
[ drop swap define-struct-getter ]
|
[ drop swap define-struct-getter ]
|
||||||
[ nip swap define-struct-setter ] 5 nbi ;
|
[ nip swap define-struct-setter ] 5 nbi ;
|
||||||
|
|
||||||
|
: define-struct-constructor ( class -- )
|
||||||
|
{
|
||||||
|
[ name>> "<" prepend ">" append create-in ]
|
||||||
|
[ '[ _ new ] ]
|
||||||
|
[ name>> '[ _ malloc-object >>underlying ] append ]
|
||||||
|
[ name>> 1array ]
|
||||||
|
} cleave { } swap <effect> define-declared ;
|
||||||
|
|
||||||
:: define-struct-tuple ( name -- )
|
:: define-struct-tuple ( name -- )
|
||||||
name create-in :> class
|
name create-in :> class
|
||||||
class struct-wrapper { } define-tuple-class
|
class struct-wrapper { } define-tuple-class
|
||||||
|
class define-struct-constructor
|
||||||
name c-type fields>> [
|
name c-type fields>> [
|
||||||
class swap
|
class swap
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue