]> gitweb.factorcode.org Git - factor.git/commitdiff
mirrors: implement keys/values.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 7 Apr 2013 19:51:35 +0000 (12:51 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 7 Apr 2013 19:51:35 +0000 (12:51 -0700)
basis/mirrors/mirrors.factor

index 07b2945e694675d77f19fb1bd6db41eb447d01cb..2fd4f07ab0af24593798d595ec99f810df14fee2 100644 (file)
@@ -44,6 +44,13 @@ M: mirror >alist ( mirror -- alist )
     [ object>> [ swap slot ] curry ] bi
     map zip ;
 
+M: mirror keys ( mirror -- keys )
+    object-slots [ name>> ] map ;
+
+M: mirror values ( mirror -- values )
+    [ object-slots [ offset>> ] map ]
+    [ object>> [ swap slot ] curry ] bi map ;
+
 M: mirror assoc-size object>> layout-of second ;
 
 INSTANCE: mirror assoc