36static unsigned char buf[1024];
40 size_t bufsz =
sizeof(buf);
43 if (lite3_init_obj(buf, &buflen, bufsz) < 0
44 ||
lite3_set_str(buf, &buflen, 0, bufsz,
"event",
"http_request") < 0
45 ||
lite3_set_str(buf, &buflen, 0, bufsz,
"method",
"POST") < 0
46 ||
lite3_set_i64(buf, &buflen, 0, bufsz,
"duration_ms", 47) < 0) {
47 perror(
"Failed to build message");
52 if (
lite3_set_obj(buf, &buflen, 0, bufsz,
"headers", &headers_ofs) < 0
53 ||
lite3_set_str(buf, &buflen, headers_ofs, bufsz,
"content-type",
"application/json") < 0
54 ||
lite3_set_str(buf, &buflen, headers_ofs, bufsz,
"x-request-id",
"req_9f8e2a") < 0
55 ||
lite3_set_str(buf, &buflen, headers_ofs, bufsz,
"user-agent",
"curl/8.1.2") < 0) {
56 perror(
"Failed to set headers");
61 perror(
"Failed to print JSON");
69 ||
lite3_get_str(buf, buflen, ofs,
"user-agent", &user_agent) < 0) {
70 perror(
"Failed to get user-agent");
73 printf(
"User agent: %s\n",
LITE3_STR(buf, user_agent));
#define lite3_get_obj(buf, buflen, ofs, key, out)
Get object by key.
#define lite3_get_str(buf, buflen, ofs, key, out)
Get string value by key.
int lite3_json_print(const unsigned char *buf, size_t buflen, size_t ofs)
Print Lite³ buffer as JSON to stdout
#define lite3_set_obj(buf, inout_buflen, ofs, bufsz, key, out_ofs)
Set object in object.
#define lite3_set_str(buf, inout_buflen, ofs, bufsz, key, str)
Set string in object.
#define lite3_set_i64(buf, inout_buflen, ofs, bufsz, key, value)
Set integer in object.
#define LITE3_STR(buf, val)
Generational pointer / safe access wrapper.
Struct holding a reference to a string inside a Lite³ buffer.