wrapped-hashtable


Vocabulary
hashtables.wrapped

Definition
USING: hashtables ;

IN: hashtables.wrapped

TUPLE: wrapped-hashtable
{ underlying hashtable read-only initial: H{ } } ;


Methods
USING: accessors assocs hashtables.wrapped kernel sequences ;

M: wrapped-hashtable >alist
underlying>> >alist
[ [ 0 swap [ underlying>> ] change-nth ] each ] keep ;


USING: assocs hashtables.wrapped prettyprint.custom ;

M: wrapped-hashtable >pprint-sequence >alist ;


USING: accessors assocs hashtables.wrapped ;

M: wrapped-hashtable assoc-size underlying>> assoc-size ;
inline


USING: assocs hashtables.wrapped hashtables.wrapped.private ;

M: wrapped-hashtable at* wrapper@ at* ; inline


USING: accessors assocs hashtables.wrapped ;

M: wrapped-hashtable clear-assoc underlying>> clear-assoc ;
inline


USING: assocs hashtables.wrapped hashtables.wrapped.private ;

M: wrapped-hashtable delete-at wrapper@ delete-at ; inline


USING: accessors hashtables.wrapped kernel ;

M: wrapped-hashtable equal?
over wrapped-hashtable?
[ [ underlying>> ] same? ] [ 2drop f ] if ;


USING: accessors assocs hashtables.wrapped sequences ;

M: wrapped-hashtable keys
underlying>> keys [ underlying>> ] map! ;


USING: continuations hashtables.wrapped namespaces
prettyprint.config prettyprint.custom ;

M: wrapped-hashtable pprint*
nesting-limit inc
[ pprint-object ] [ nesting-limit dec ] [ ] cleanup ;


USING: assocs hashtables.wrapped hashtables.wrapped.private ;

M: wrapped-hashtable set-at wrapper@ set-at ; inline


USING: accessors assocs hashtables.wrapped ;

M: wrapped-hashtable values underlying>> values ;