| 1 | #include <stdbool.h> |
| 2 | |
| 3 | typedef struct Coroutine Coroutine; |
| 4 | |
| 5 | typedef void (*Coroutine_YieldCallback)(void *this); |
| 6 | typedef void *(*Coroutine_Start)(void *); |
| 7 | |
| 8 | void Coroutine_StartSystem(); |
| 9 | void Coroutine_StopSystem(); |
| 10 | Coroutine *Coroutine_New(void *this, Coroutine_YieldCallback on_yield, Coroutine_Start start); |
| 11 | void *Coroutine_Run(Coroutine *cor, void *value); |
| 12 | void Coroutine_Delete(Coroutine *cor); |
| 13 | void Coroutine_Continue(Coroutine *cor, void *value, bool early); |
| 14 | void *Coroutine_Yield(void *value); |
| 15 | void *Coroutine_GetValue(Coroutine *cor); |
| 16 | Coroutine *Coroutine_GetActive(); |
| 17 | bool Coroutine_IsRunning(Coroutine *cor); |
| 18 | |