00001 #ifndef _dev_w3_org__2001_blindfold_iter
00002 #define _dev_w3_org__2001_blindfold_iter
00003
00112 struct iter_s;
00113
00118 typedef void (iter_reset_function)(struct iter_s *iter);
00119
00120 struct iter_s {
00121 void *state;
00122 iter_reset_function *reset;
00123 };
00124
00132 typedef struct iter_s iter;
00133
00134
00140
00141
00142
00143
00144
00145
00147 #define iter_reset(i) \
00148 if ((i)->state) { \
00149 if ((i)->reset) (*((i)->reset))(i); \
00150 } else { \
00151 (i)->state = 0; \
00152 }
00153
00154 #endif