mirrors on structs again, add summary method for structs

db4
Doug Coleman 2009-08-31 19:27:29 -05:00
parent 3d975ea7ab
commit f0e14d1c3c
2 changed files with 20 additions and 1 deletions

View File

@ -56,3 +56,13 @@ M: array make-mirror <enum> ;
M: vector make-mirror <enum> ;
M: quotation make-mirror <enum> ;
M: object make-mirror <mirror> ;
M: struct make-mirror
[
[ drop "underlying" ] [ (underlying)>> ] bi 2array 1array
] [
'[
_ struct>assoc
[ [ [ name>> ] [ c-type>> ] bi 2array ] dip ] assoc-map
] [ drop { } ] recover
] bi append ;

View File

@ -1,7 +1,8 @@
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors classes sequences kernel namespaces
make words math math.parser assocs ;
make words math math.parser assocs classes.struct
alien.c-types ;
IN: summary
GENERIC: summary ( object -- string )
@ -31,3 +32,11 @@ M: assoc summary
M: f summary object-summary ;
M: integer summary object-summary ;
M: struct summary
[
dup class name>> %
" struct of " %
byte-length #
" bytes " %
] "" make ;