1 //metadoc Map copyright Steve Dekorte 2002
2 //metadoc Map license BSD revised
5 #define IoMap_DEFINED 1
16 #define ISMAP(self) IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoMap_rawClone)
18 typedef IoObject IoMap
;
20 IoMap
*IoMap_proto(void *state
);
21 IoMap
*IoMap_rawClone(IoMap
*self
);
22 IoMap
*IoMap_new(void *state
);
23 void IoMap_free(IoMap
*self
);
24 void IoMap_mark(IoMap
*self
);
25 PHash
*IoMap_rawHash(IoMap
*self
);
27 void IoMap_writeToStream_(IoMap
*self
, BStream
*stream
);
28 void IoMap_readFromStream_(IoMap
*self
, BStream
*stream
);
30 // -----------------------------------------------------------
32 IoObject
*IoMap_empty(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
34 IOVM_API IoObject
*IoMap_rawAt(IoMap
*self
, IoSymbol
*k
);
35 IOVM_API IoObject
*IoMap_at(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
37 void IoMap_rawAtPut(IoMap
*self
, IoSymbol
*k
, IoObject
*v
);
38 IoObject
*IoMap_atPut(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
39 IoObject
*IoMap_atIfAbsentPut(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
40 IoObject
*IoMap_removeAt(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
41 IoObject
*IoMap_size(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
43 IoObject
*IoMap_hasKey(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
44 IoObject
*IoMap_hasValue(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
46 IOVM_API IoList
*IoMap_rawKeys(IoMap
*self
);
47 IoObject
*IoMap_keys(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
49 IoObject
*IoMap_values(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);
50 IoObject
*IoMap_foreach(IoMap
*self
, IoObject
*locals
, IoMessage
*m
);