#ifndef HEADERS_H #define HEADERS_H #include "types.h" #include "modules/symbol.h" extern ant_value_t g_headers_iter_proto; extern ant_value_t g_headers_proto; typedef enum { HEADERS_GUARD_NONE = 0, HEADERS_GUARD_REQUEST, HEADERS_GUARD_REQUEST_NO_CORS, HEADERS_GUARD_RESPONSE, HEADERS_GUARD_IMMUTABLE } headers_guard_t; typedef void (*headers_foreach_cb)( const char *name, const char *value, void *ctx ); void init_headers_module(void); void headers_apply_guard(ant_value_t hdrs); void headers_set_guard(ant_value_t hdrs, headers_guard_t guard); void headers_append_if_missing(ant_value_t hdrs, const char *name, const char *value); void headers_for_each(ant_value_t hdrs, headers_foreach_cb cb, void *ctx); bool headers_is_headers(ant_value_t obj); bool headers_copy_from(ant_t *js, ant_value_t dst, ant_value_t src); bool advance_headers(ant_t *js, struct js_iter_t *it, ant_value_t *out); bool headers_init_has_name(ant_t *js, ant_value_t init, const char *name); bool headers_set_literal(ant_t *js, ant_value_t hdrs, const char *name, const char *value); ant_value_t headers_create_empty(ant_t *js); ant_value_t headers_create_from_init(ant_t *js, ant_value_t init); ant_value_t headers_get_value(ant_t *js, ant_value_t hdrs, const char *name); ant_value_t headers_append_value(ant_t *js, ant_value_t hdrs, ant_value_t name_v, ant_value_t value_v); ant_value_t headers_append_literal(ant_t *js, ant_value_t hdrs, const char *name, const char *value); headers_guard_t headers_get_guard(ant_value_t hdrs); #endif