over class-of id-slot writer-word execute( object value -- ) ;
-
+
TUPLE: mdb-tuple-collection < mdb-collection { classes } ;
GENERIC: tuple-collection ( object -- mdb-collection )
<PRIVATE
-: (mdb-collection) ( class -- mdb-collection )
+: (mdb-collection) ( class -- mdb-collection )
dup MDB_COLLECTION word-prop
[ nip ]
[ superclass [ (mdb-collection) ] [ f ] if* ] if* ; inline recursive
'[ split-optl swap _ set-at ] each ; inline
: index-list>map ( seq -- map )
- [ H{ } clone ] dip over
+ [ H{ } clone ] dip over
'[ dup name>> _ set-at ] each ; inline
: user-defined-key ( map -- key value ? )
M: tuple-class tuple-collection ( tuple -- mdb-collection )
(mdb-collection) ;
-
+
M: mdb-persistent tuple-collection ( tuple -- mdb-collection )
class-of (mdb-collection) ;
-
+
M: mdb-persistent mdb-slot-map ( tuple -- string )
class-of (mdb-slot-map) ;
: slot-option? ( tuple slot option -- ? )
[ swap mdb-slot-map at ] dip
'[ _ swap member-eq? ] [ f ] if* ;
-
+
PRIVATE>
GENERIC: <mdb-tuple-collection> ( name -- mdb-tuple-collection )
-M: string <mdb-tuple-collection>
- collection-map [ ] [ key? ] 2bi
- [ at ] [ [ mdb-tuple-collection new dup ] 2dip
+M: string <mdb-tuple-collection>
+ collection-map [ ] [ key? ] 2bi
+ [ at ] [ [ mdb-tuple-collection new dup ] 2dip
[ [ >>name ] keep ] dip set-at ] if ; inline
M: mdb-tuple-collection <mdb-tuple-collection> ;
M: mdb-collection <mdb-tuple-collection>