cwist
Modern C web framework with libttak runtime
Loading...
Searching...
No Matches
query.h
Go to the documentation of this file.
1
6#ifndef __CWIST_QUERY_H__
7#define __CWIST_QUERY_H__
8
9#include <stdint.h>
10#include <stddef.h>
11
17
18typedef struct cwist_query_map {
20 size_t size;
21 uint8_t seed[16];
22 void *arena;
23 size_t count;
25
34
39
48void cwist_query_map_parse(cwist_query_map *map, const char *raw_query);
49
54
63const char *cwist_query_map_get(cwist_query_map *map, const char *key);
64
68void cwist_query_map_set(cwist_query_map *map, const char *key, const char *value);
69
73void cwist_query_map_delete(cwist_query_map *map, const char *key);
74
78typedef void (*cwist_query_map_iter_func)(const char *key, const char *value, void *ctx);
79
84
87#endif
void cwist_query_map_delete(cwist_query_map *map, const char *key)
Delete a key from the map.
Definition query.c:220
const char * cwist_query_map_get(cwist_query_map *map, const char *key)
Get a value by key.
Definition query.c:196
cwist_query_map * cwist_query_map_create_in_arena(void *arena)
Allocate a query map within a memory arena to avoid GC/heap allocations.
Definition query.c:61
void(* cwist_query_map_iter_func)(const char *key, const char *value, void *ctx)
Iterator callback signature.
Definition query.h:78
void cwist_query_map_set(cwist_query_map *map, const char *key, const char *value)
Set a key-value pair.
Definition query.c:146
void cwist_query_map_foreach(cwist_query_map *map, cwist_query_map_iter_func cb, void *ctx)
Iterate over all key-value pairs in the map.
Definition query.c:252
void cwist_query_map_clear(cwist_query_map *map)
Clear all entries.
Definition query.c:93
cwist_query_map * cwist_query_map_create(void)
Create a new query map.
Definition query.c:54
void cwist_query_map_destroy(cwist_query_map *map)
Destroy a query map.
Definition query.c:81
void cwist_query_map_parse(cwist_query_map *map, const char *raw_query)
Parse raw query strings (e.g., "a=1&b=2") into the map.
Definition query.c:319
struct cwist_query_bucket * next
Definition query.h:15
uint8_t seed[16]
Definition query.h:21
cwist_query_bucket ** buckets
Definition query.h:19
size_t size
Definition query.h:20
size_t count
Definition query.h:23
void * arena
Definition query.h:22