mirrors on structs again, add summary method for structs
							parent
							
								
									3d975ea7ab
								
							
						
					
					
						commit
						f0e14d1c3c
					
				|  | @ -56,3 +56,13 @@ M: array make-mirror <enum> ; | ||||||
| M: vector make-mirror <enum> ; | M: vector make-mirror <enum> ; | ||||||
| M: quotation make-mirror <enum> ; | M: quotation make-mirror <enum> ; | ||||||
| M: object make-mirror <mirror> ; | 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 ; | ||||||
|  |  | ||||||
|  | @ -1,7 +1,8 @@ | ||||||
| ! Copyright (C) 2008 Slava Pestov. | ! Copyright (C) 2008 Slava Pestov. | ||||||
| ! See http://factorcode.org/license.txt for BSD license. | ! See http://factorcode.org/license.txt for BSD license. | ||||||
| USING: accessors classes sequences kernel namespaces | 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 | IN: summary | ||||||
| 
 | 
 | ||||||
| GENERIC: summary ( object -- string ) | GENERIC: summary ( object -- string ) | ||||||
|  | @ -31,3 +32,11 @@ M: assoc summary | ||||||
| M: f summary object-summary ; | M: f summary object-summary ; | ||||||
| 
 | 
 | ||||||
| M: integer summary object-summary ; | M: integer summary object-summary ; | ||||||
|  | 
 | ||||||
|  | M: struct summary | ||||||
|  |     [ | ||||||
|  |         dup class name>> % | ||||||
|  |         " struct of " % | ||||||
|  |         byte-length # | ||||||
|  |         " bytes " % | ||||||
|  |     ] "" make ; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue