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