1 #ifndef DS_HTABLE_ITERATOR_H
2 #define DS_HTABLE_ITERATOR_H
3 
4 #include "php.h"
5 #include "../../ds/ds_htable.h"
6 
7 typedef struct ds_htable_iterator {
8 
9     zend_object_iterator     intern;
10     uint32_t                 position;
11     ds_htable_bucket_t      *bucket;
12     ds_htable_t             *table;
13     zend_object             *obj;
14 
15 } ds_htable_iterator_t;
16 
17 zend_object_iterator *php_ds_htable_get_value_iterator_ex(zend_class_entry *ce, zval *obj, int by_ref, ds_htable_t *h);
18 zend_object_iterator *php_ds_htable_get_key_iterator_ex  (zend_class_entry *ce, zval *obj, int by_ref, ds_htable_t *h);
19 zend_object_iterator *php_ds_htable_get_pair_iterator_ex (zend_class_entry *ce, zval *obj, int by_ref, ds_htable_t *h);
20 zend_object_iterator *php_ds_htable_get_assoc_iterator_ex(zend_class_entry *ce, zval *obj, int by_ref, ds_htable_t *h);
21 
22 #endif
23