#ifndef ROUTES_H_ #define ROUTES_H_ #include "gebs/gebs.h" #include "mongoose/mongoose.h" typedef struct { int status_code; NString_List headers; String_Builder body; } Route_Result; typedef struct { struct mg_mgr *mgr; ulong conn_id; struct mg_str message; } Route_Thread_Data; typedef void (*Route_Handler)(struct mg_http_message *msg, Route_Result *result, void *context_data); typedef struct { char *key; // path Route_Handler value; void *context_data; } Route; #define ROUTE_HANDLER(name) void route_##name(struct mg_http_message *msg, Route_Result *result, void *context_data) ROUTE_HANDLER(page_not_found); ROUTE_HANDLER(simple_css); ROUTE_HANDLER(favicon); #if MY_DEBUG ROUTE_HANDLER(hotreload_js); ROUTE_HANDLER(build_id); #endif ROUTE_HANDLER(home); ROUTE_HANDLER(generic_blog); ROUTE_HANDLER(blog); #endif // ROUTES_H_