use word-props instead of singletons for enum>number conversion so there's not a big fat generic making the image buy another plane ticket

db4
Joe Groff 2010-04-21 22:22:06 -07:00
parent 4c7ab0e9a3
commit e5c65b2204
1 changed files with 7 additions and 7 deletions

View File

@ -1,6 +1,6 @@
! (c)2010 Joe Groff, Erik Charlebois bsd license
USING: accessors alien.c-types arrays classes.singleton combinators
delegate fry generic.parser kernel macros math parser sequences words ;
USING: accessors alien.c-types arrays combinators delegate fry
generic.parser kernel macros math parser sequences words words.symbol ;
IN: alien.enums
<PRIVATE
@ -12,6 +12,7 @@ PRIVATE>
GENERIC: enum>number ( enum -- number ) foldable
M: integer enum>number ;
M: symbol enum>number "enum-value" word-prop ;
<PRIVATE
: enum-boxer ( members -- quot )
@ -30,14 +31,13 @@ M: enum-c-type c-type-setter
<PRIVATE
: define-enum>number ( class value -- )
[ \ enum>number create-method-in ]
[ '[ drop _ ] ] bi* define ;
: define-enum-value ( class value -- )
"enum-value" set-word-prop ;
: define-enum-members ( member-names -- )
[
[ first define-singleton-class ]
[ first2 define-enum>number ] bi
[ first define-symbol ]
[ first2 define-enum-value ] bi
] each ;
: define-enum-constructor ( word -- )