New doc system done for core
[io.git] / libs / iovm / source / IoList.h
bloba4603357efa6c81365c8546101b68042da9919ec
2 //metadoc List copyright Steve Dekorte 2002
3 //metadoc List license BSD revised
5 #ifndef IOLIST_DEFINED
6 #define IOLIST_DEFINED 1
8 #include "IoVMApi.h"
9 #include "Common.h"
10 #include "IoState.h"
11 #include "IoObject.h"
12 #include "List.h"
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
18 #define ISLIST(self) \
19 IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoList_rawClone)
21 typedef IoObject IoList;
23 IOVM_API IoList *IoList_proto(void *state);
24 IOVM_API IoList *IoList_rawClone(IoList *self);
25 IOVM_API IoList *IoList_new(void *state);
26 IOVM_API IoList *IoList_newWithList_(void *state, List *list);
27 IOVM_API void IoList_free(IoList *self);
28 IOVM_API void IoList_mark(IoList *self);
29 IOVM_API int IoList_compare(IoList *self, IoList *otherList);
31 IOVM_API void IoList_writeToStream_(IoList *self, BStream *stream);
32 IOVM_API void IoList_readFromStream_(IoList *self, BStream *stream);
34 IOVM_API List *IoList_rawList(IoList *self);
35 IOVM_API IoObject *IoList_rawAt_(IoList *self, int i);
36 IOVM_API void IoList_rawAt_put_(IoList *self, int i, IoObject *v);
37 IOVM_API void IoList_rawAppend_(IoList *self, IoObject *v);
38 IOVM_API void IoList_rawRemove_(IoList *self, IoObject *v);
39 IOVM_API void IoList_rawAddIoList_(IoList *self, IoList *other);
40 IOVM_API void IoList_rawAddBaseList_(IoList *self, List *other);
41 IOVM_API size_t IoList_rawSize(IoList *self);
43 // immutable
45 IOVM_API IoObject *IoList_with(IoList *self, IoObject *locals, IoMessage *m);
46 IOVM_API IoObject *IoList_indexOf(IoList *self, IoObject *locals, IoMessage *m);
47 IOVM_API IoObject *IoList_contains(IoList *self, IoObject *locals, IoMessage *m);
48 IOVM_API IoObject *IoList_containsIdenticalTo(IoList *self, IoObject *locals, IoMessage *m);
49 IOVM_API IoObject *IoList_capacity(IoList *self, IoObject *locals, IoMessage *m);
50 IOVM_API IoObject *IoList_size(IoList *self, IoObject *locals, IoMessage *m);
51 IOVM_API IoObject *IoList_at(IoList *self, IoObject *locals, IoMessage *m);
52 IOVM_API IoObject *IoList_first(IoList *self, IoObject *locals, IoMessage *m);
53 IOVM_API IoObject *IoList_last(IoList *self, IoObject *locals, IoMessage *m);
55 IOVM_API IoObject *IoList_slice(IoList *self, IoObject *locals, IoMessage *m);
56 IOVM_API IoObject *IoList_sliceInPlace(IoList *self, IoObject *locals, IoMessage *m);
58 IOVM_API IoObject *IoList_mapInPlace(IoList *self, IoObject *locals, IoMessage *m);
59 IOVM_API IoObject *IoList_map(IoList *self, IoObject *locals, IoMessage *m);
61 IOVM_API IoObject *IoList_select(IoList *self, IoObject *locals, IoMessage *m);
62 IOVM_API IoObject *IoList_detect(IoList *self, IoObject *locals, IoMessage *m);
64 IOVM_API IoObject *IoList_foreach(IoList *self, IoObject *locals, IoMessage *m);
65 IOVM_API IoObject *IoList_reverseForeach(IoList *self, IoObject *locals, IoMessage *m);
67 // mutable
69 IOVM_API IoObject *IoList_preallocateToSize(IoList *self, IoObject *locals, IoMessage *m);
70 IOVM_API IoObject *IoList_append(IoList *self, IoObject *locals, IoMessage *m);
71 IOVM_API IoObject *IoList_prepend(IoList *self, IoObject *locals, IoMessage *m);
72 IOVM_API IoObject *IoList_appendIfAbsent(IoList *self, IoObject *locals, IoMessage *m);
73 IOVM_API IoObject *IoList_appendSeq(IoList *self, IoObject *locals, IoMessage *m);
74 IOVM_API IoObject *IoList_remove(IoList *self, IoObject *locals, IoMessage *m);
75 IOVM_API IoObject *IoList_push(IoList *self, IoObject *locals, IoMessage *m);
76 IOVM_API IoObject *IoList_pop(IoList *self, IoObject *locals, IoMessage *m);
78 IoObject *IoList_setSize(IoList *self, IoObject *locals, IoMessage *m);
79 IOVM_API IoObject *IoList_removeAll(IoList *self, IoObject *locals, IoMessage *m);
80 IOVM_API IoObject *IoList_atInsert(IoList *self, IoObject *locals, IoMessage *m);
81 IOVM_API IoObject *IoList_removeAt(IoList *self, IoObject *locals, IoMessage *m);
82 IOVM_API IoObject *IoList_atPut(IoList *self, IoObject *locals, IoMessage *m);
83 IOVM_API IoObject *IoList_removeAll(IoList *self, IoObject *locals, IoMessage *m);
84 IOVM_API IoObject *IoList_swapIndices(IoList *self, IoObject *locals, IoMessage *m);
85 IOVM_API IoObject *IoList_reverse(IoList *self, IoObject *locals, IoMessage *m);
86 IOVM_API IoObject *IoList_sortInPlace(IoList *self, IoObject *locals, IoMessage *m);
87 IOVM_API IoObject *IoList_sortInPlaceBy(IoList *self, IoObject *locals, IoMessage *m);
88 IOVM_API IoObject *IoList_selectInPlace(IoList *self, IoObject *locals, IoMessage *m);\
90 #ifdef __cplusplus
92 #endif
93 #endif