xref: /ext-ds/src/php/classes/php_sequence_ce.h (revision 07801172)
1 #ifndef PHP_DS_SEQUENCE_CE_H
2 #define PHP_DS_SEQUENCE_CE_H
3 
4 #include "php.h"
5 
6 extern zend_class_entry *sequence_ce;
7 
8 #define PHP_DS_SEQUENCE_ME(cls, name) \
9     PHP_ME(cls, name, arginfo_Sequence_##name, ZEND_ACC_PUBLIC)
10 
11 #define PHP_DS_SEQUENCE_ME_LIST(cls) \
12 PHP_DS_SEQUENCE_ME(cls, allocate) \
13 PHP_DS_SEQUENCE_ME(cls, apply) \
14 PHP_DS_SEQUENCE_ME(cls, capacity) \
15 PHP_DS_SEQUENCE_ME(cls, contains) \
16 PHP_DS_SEQUENCE_ME(cls, filter) \
17 PHP_DS_SEQUENCE_ME(cls, find) \
18 PHP_DS_SEQUENCE_ME(cls, first) \
19 PHP_DS_SEQUENCE_ME(cls, get) \
20 PHP_DS_SEQUENCE_ME(cls, insert) \
21 PHP_DS_SEQUENCE_ME(cls, join) \
22 PHP_DS_SEQUENCE_ME(cls, last) \
23 PHP_DS_SEQUENCE_ME(cls, map) \
24 PHP_DS_SEQUENCE_ME(cls, merge) \
25 PHP_DS_SEQUENCE_ME(cls, offsetExists) \
26 PHP_DS_SEQUENCE_ME(cls, offsetGet) \
27 PHP_DS_SEQUENCE_ME(cls, offsetSet) \
28 PHP_DS_SEQUENCE_ME(cls, offsetUnset) \
29 PHP_DS_SEQUENCE_ME(cls, pop) \
30 PHP_DS_SEQUENCE_ME(cls, push) \
31 PHP_DS_SEQUENCE_ME(cls, reduce) \
32 PHP_DS_SEQUENCE_ME(cls, remove) \
33 PHP_DS_SEQUENCE_ME(cls, reverse) \
34 PHP_DS_SEQUENCE_ME(cls, reversed) \
35 PHP_DS_SEQUENCE_ME(cls, rotate) \
36 PHP_DS_SEQUENCE_ME(cls, set) \
37 PHP_DS_SEQUENCE_ME(cls, shift) \
38 PHP_DS_SEQUENCE_ME(cls, slice) \
39 PHP_DS_SEQUENCE_ME(cls, sort) \
40 PHP_DS_SEQUENCE_ME(cls, sorted) \
41 PHP_DS_SEQUENCE_ME(cls, sum) \
42 PHP_DS_SEQUENCE_ME(cls, unshift) \
43 
44 ARGINFO_LONG(                           Sequence_allocate, capacity);
45 ARGINFO_CALLABLE(                       Sequence_apply, callback);
46 ARGINFO_NONE_RETURN_LONG(               Sequence_capacity);
47 ARGINFO_VARIADIC_ZVAL_RETURN_BOOL(      Sequence_contains, values);
48 ARGINFO_OPTIONAL_CALLABLE_RETURN_DS(    Sequence_filter, callback, Sequence);
49 ARGINFO_ZVAL(                           Sequence_find, value);
50 ARGINFO_NONE(                           Sequence_first);
51 ARGINFO_OPTIONAL_STRING_RETURN_STRING(  Sequence_join, glue);
52 ARGINFO_LONG(                           Sequence_get, index);
53 ARGINFO_LONG_VARIADIC_ZVAL(             Sequence_insert, index, values);
54 ARGINFO_NONE(                           Sequence_last);
55 ARGINFO_CALLABLE_RETURN_DS(             Sequence_map, callback, Sequence);
56 ARGINFO_ZVAL_RETURN_DS(                 Sequence_merge, values, Sequence);
57 ARGINFO_ZVAL_RETURN_BOOL(              	Sequence_offsetExists, offset);
58 ARGINFO_OFFSET_GET(         		    Sequence_offsetGet);
59 ARGINFO_OFFSET_SET(                     Sequence_offsetSet);
60 ARGINFO_OFFSET_UNSET(          		    Sequence_offsetUnset);
61 ARGINFO_NONE(                           Sequence_pop);
62 ARGINFO_VARIADIC_ZVAL(                  Sequence_push, values);
63 ARGINFO_CALLABLE_OPTIONAL_ZVAL(         Sequence_reduce, callback, initial);
64 ARGINFO_LONG(                           Sequence_remove, index);
65 ARGINFO_NONE(                           Sequence_reverse);
66 ARGINFO_NONE_RETURN_DS(                 Sequence_reversed, Sequence);
67 ARGINFO_LONG(                           Sequence_rotate, rotations);
68 ARGINFO_LONG_ZVAL(                      Sequence_set, index, value);
69 ARGINFO_NONE(                           Sequence_shift);
70 ARGINFO_LONG_OPTIONAL_LONG_RETURN_DS(   Sequence_slice, index, length, Sequence);
71 ARGINFO_OPTIONAL_CALLABLE(              Sequence_sort, comparator);
72 ARGINFO_OPTIONAL_CALLABLE_RETURN_DS(    Sequence_sorted, comparator, Sequence);
73 ARGINFO_NONE(                           Sequence_sum);
74 ARGINFO_VARIADIC_ZVAL(                  Sequence_unshift, values);
75 
76 void php_ds_register_sequence();
77 
78 #endif
79