diff options
Diffstat (limited to 'libcnary/include/iterator.h')
-rw-r--r-- | libcnary/include/iterator.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/libcnary/include/iterator.h b/libcnary/include/iterator.h new file mode 100644 index 0000000..debc1c5 --- /dev/null +++ b/libcnary/include/iterator.h @@ -0,0 +1,33 @@ +/* + * iterator.h + * + * Created on: Mar 8, 2011 + * Author: posixninja + */ + +#ifndef ITERATOR_H_ +#define ITERATOR_H_ + +struct list_t; +struct object_t; + +typedef struct iterator_t { + struct object_t*(*next)(struct iterator_t* iterator); + int(*bind)(struct iterator_t* iterator, struct list_t* list); + + unsigned int count; + unsigned int position; + + struct list_t* list; + struct object_t* end; + struct object_t* begin; + struct object_t* value; +} iterator_t; + +void iterator_destroy(struct iterator_t* iterator); +struct iterator_t* iterator_create(struct list_t* list); + +struct object_t* iterator_next(struct iterator_t* iterator); +int iterator_bind(struct iterator_t* iterator, struct list_t* list); + +#endif /* ITERATOR_H_ */ |