| 1 | #include <stdbool.h> |
| 2 | |
| 3 | typedef struct Generator Generator; |
| 4 | Generator *Generator_New(void *(*)(void *), void *); |
| 5 | void Generator_Delete(Generator *); |
| 6 | |
| 7 | // Returns true if generator yielded a value, false if generator is complete |
| 8 | // *value is set to generator's value (yield / return value from exit) |
| 9 | bool Generator_Next(Generator *, void **value); |
| 10 | |
| 11 | // Yield a value from the generator |
| 12 | // Returns true if generator should continue, false for generator to exit PDQ |
| 13 | bool Generator_Yield(void *); |
| 14 | |