Refresh both AGENTS guides and clarify module purpose, usage, ownership, threading, return values and wire formats in headers. Remove the unused timeout_heap freed_count field and unimplemented getter.
30 lines
1.1 KiB
C
30 lines
1.1 KiB
C
/**
|
|
* @file json_flat.h
|
|
* @brief Парсер плоского JSON без вложенности: {"key":"value",...}
|
|
*
|
|
* Только строковые значения и обычные escapes; \uXXXX не поддерживается.
|
|
* Callback получает полные key/value, действительные только до его возврата.
|
|
* parse возвращает 0 при успехе/остановке callback, -1 при ошибке; остановка не проверяет остаток ввода.
|
|
* get ищет первый ключ и копирует значение с NUL, при малом буфере обрезает; 0 найден, -1 ошибка/нет ключа.
|
|
*/
|
|
|
|
#ifndef JSON_FLAT_H
|
|
#define JSON_FLAT_H
|
|
|
|
#include <stddef.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef int (*json_flat_cb)(const char* key, const char* value, void* arg);
|
|
/* Callback: 0 = continue, >0 = stop successfully, <0 = error. */
|
|
|
|
int json_flat_parse(const char* json, json_flat_cb cb, void* arg);
|
|
int json_flat_get(const char* json, const char* key, char* value_out, size_t value_sz);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|