struct - Factor Documentation

struct


Vocabulary
classes .struct

Class description
The parent class of all struct types.

See also
STRUCT: , UNION-STRUCT:

Definition
USING: alien ;

IN: classes.struct

TUPLE: struct { (underlying) c-ptr read-only initial: f } ;


Methods
USING: alien classes.struct kernel.private slots.private ;

M: struct >c-ptr 2 slot { c-ptr } declare ; inline


USING: classes classes.struct kernel prettyprint.backend
prettyprint.custom ;

M: struct >pprint-sequence
[ class-of ] [ struct-slot-values ] bi class-slot-sequence ;


USING: alien alien.c-types alien.data classes.struct kernel
sequences ;

M: struct binary-zero?
binary-object uchar <c-direct-array> [ 0 = ] all? ; inline


USING: alien classes classes.struct ;

M: struct byte-length class-of struct-size ; inline foldable
flushable


USING: classes classes.struct kernel ;

M: struct equal?
[ [ class-of ] same? ] 2check
[ [ struct-slot-values ] same? ] [ 2drop f ] if ; inline


USING: alien classes.struct kernel ;

M: struct hashcode*
nip dup >c-ptr [ struct-slot-values hashcode ] [ drop 0 ] if
; inline


USING: classes.struct classes.struct.prettyprint mirrors ;

M: struct make-mirror <struct-mirror> ;


USING: classes.struct classes.struct.prettyprint.private
prettyprint.backend prettyprint.custom ;

M: struct pprint*
[ pprint-struct ] [ pprint-struct-pointer ] pprint-c-object
;


USING: classes.struct kernel prettyprint.custom ;

M: struct pprint-delims drop \ S{ \ } ;


USING: accessors alien classes classes.struct kernel make
math.parser summary ;

M: struct summary
[
dup class-of name>> % " struct of " % byte-length #
" bytes " %
] "" make ;


USING: classes.struct classes.struct.private
classes.tuple.private generic kernel ;

M: struct update-tuple
[ resize-underlying ]
[ M\ struct update-tuple (call-next-method) ] bi ;

AltStyle によって変換されたページ (->オリジナル) /