StrIterFromStr
- Macro
- August 22, 2025
Table of Contents
StrIterFromStr
StrIterFromStr
Description
Create string iterator from Str
object
Parameters
Name | Direction | Description |
---|---|---|
s | in | Str object to iterate |
Usage example (Cross-references)
- In
MisraEnum.c:54
:
EnumEntries entries = VecInit();
StrIter json = StrIterFromStr(code);
Str enum_name = StrInit();
bool to_from_str = false;
- In
MisraDoc.c:115
:
LOG_FATAL("Failed to read config file.");
}
StrIter json = StrIterFromStr(config);
JR_PROJECT(json, project);
});
- In
Read.Simple.c:63
:
bool success = true;
Str json = StrInitFromZstr("{\"name\": \"Alice\", \"city\": \"New York\"}");
StrIter si = StrIterFromStr(json);
Str name = StrInit();
bool success = true;
Str json = StrInitFromZstr("{\"count\": 42, \"score\": 95.5, \"year\": 2024}");
StrIter si = StrIterFromStr(json);
u32 count = 0;
bool success = true;
Str json = StrInitFromZstr("{\"enabled\": true, \"visible\": false}");
StrIter si = StrIterFromStr(json);
bool enabled = false;
Str json =
StrInitFromZstr("{\"id\": 1001, \"name\": \"Bob\", \"age\": 25, \"is_active\": true, \"salary\": 50000.0}");
StrIter si = StrIterFromStr(json);
Person person = {0};
bool success = true;
Str json = StrInitFromZstr("{\"debug_mode\": false, \"timeout\": 30, \"log_level\": \"INFO\"}");
StrIter si = StrIterFromStr(json);
Config config = {0};
bool success = true;
Str json = StrInitFromZstr("{\"languages\": [\"C\", \"Python\", \"Rust\"]}");
StrIter si = StrIterFromStr(json);
Vec(Str) languages = VecInitWithDeepCopy(NULL, StrDeinit);
Str json =
StrInitFromZstr("{\"user\": {\"name\": \"Charlie\", \"email\": \"charlie@example.com\"}, \"active\": true}");
StrIter si = StrIterFromStr(json);
struct {
"\"portable\"]}"
);
StrIter si = StrIterFromStr(json);
SimpleProduct product = {0};
// Test completely empty object
Str json1 = StrInitFromZstr("{}");
StrIter si1 = StrIterFromStr(json1);
struct {
// Test empty object with whitespace
Str json2 = StrInitFromZstr(" { } ");
StrIter si2 = StrIterFromStr(json2);
struct {
// Test completely empty array
Str json1 = StrInitFromZstr("{\"items\":[]}");
StrIter si1 = StrIterFromStr(json1);
Vec(i32) items = VecInit();
// Test empty array with whitespace
Str json2 = StrInitFromZstr("{\"data\": [ ] }");
StrIter si2 = StrIterFromStr(json2);
Vec(Str) data = VecInitWithDeepCopy(NULL, StrDeinit);
Str json = StrInitFromZstr("{\"name\":\"\",\"description\":\"\"}");
StrIter si = StrIterFromStr(json);
struct {
Str json = StrInitFromZstr("{\"temp\":-25,\"balance\":-1000.50,\"delta\":-0.001}");
StrIter si = StrIterFromStr(json);
struct {
"308}"
);
StrIter si = StrIterFromStr(json);
struct {
Str json = StrInitFromZstr("{\"int_zero\":0,\"float_zero\":0.0,\"bool_false\":false}");
StrIter si = StrIterFromStr(json);
struct {
"\\\"World\\\"!\",\"data\":\"line1\\nline2\\ttab\"}"
);
StrIter si = StrIterFromStr(json);
struct {
Str json =
StrInitFromZstr("{\"escaped\":\"\\\"quotes\\\"\",\"backslash\":\"\\\\\",\"newline\":\"\\n\",\"tab\":\"\\t\"}");
StrIter si = StrIterFromStr(json);
struct {
// Test with lots of different whitespace patterns
Str json = StrInitFromZstr(" {\n\t\"name\" : \"test\" ,\n \"value\": 42\t,\"flag\"\n:\ntrue\n}\t");
StrIter si = StrIterFromStr(json);
struct {
Str json = StrInitFromZstr("{\"outer\":{},\"list\":[],\"deep\":{\"inner\":{}}}");
StrIter si = StrIterFromStr(json);
struct {
Str json = StrInitFromZstr("{\"empty_obj\":{},\"filled_obj\":{\"x\":1},\"empty_arr\":[],\"filled_arr\":[1,2]}");
StrIter si = StrIterFromStr(json);
struct {
// Using smaller values that are safer to work with
Str json = StrInitFromZstr("{\"max_int\":2147483647,\"min_int\":-2147483648,\"one\":1,\"minus_one\":-1}");
StrIter si = StrIterFromStr(json);
struct {
Str json = StrInitFromZstr("{\"tiny\":0.000001,\"huge\":999999.999999,\"zero\":0.0,\"negative_tiny\":-0.000001}");
StrIter si = StrIterFromStr(json);
struct {
- In
RoundTrip.c:117
:
} parsed = {0, 0.0, false, StrInit()};
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_INT_KV(si, "count", parsed.count);
- In
RoundTrip.c:193
:
} parsed = {0};
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_INT_KV(si, "big_int", parsed.big_int);
- In
RoundTrip.c:257
:
} parsed = {false, true, false, true}; // Initialize with opposite values
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_BOOL_KV(si, "flag1", parsed.flag1);
- In
RoundTrip.c:314
:
} parsed = {StrInit(), StrInit(), StrInit(), StrInit()};
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_STR_KV(si, "empty", parsed.empty);
- In
RoundTrip.c:383
:
Vec(Str) parsed_strings = VecInitWithDeepCopy(NULL, StrDeinit);
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_ARR_KV(si, "numbers", {
- In
RoundTrip.c:472
:
TestPerson parsed_person = {0, StrInit(), 0, false, 0.0};
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_OBJ_KV(si, "user", {
- In
RoundTrip.c:568
:
parsed.flags = VecInitT(parsed.flags);
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_OBJ_KV(si, "user", {
- In
RoundTrip.c:673
:
bool found_empty_object = false;
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_STR_KV(si, "empty_string", parsed_str);
- In
RoundTrip.c:753
:
} parsed = {0, 0, 999, 999.0, false, true}; // Initialize with different values
StrIter si = StrIterFromStr(json);
JR_OBJ(si, {
JR_INT_KV(si, "max_int", parsed.max_int);
Str json = StrInitFromZstr("{\"test\": \"value\"}");
StrIter si = StrIterFromStr(json);
bool success = true;
bool success = true;
Str json = StrInitFromZstr("{\"id\": 12345, \"name\": \"test\", \"active\": true, \"score\": 98.5}");
StrIter si = StrIterFromStr(json);
struct {
"{\"user\": {\"id\": 123, \"profile\": {\"name\": \"Alice\", \"age\": 30}}, \"status\": \"active\"}"
);
StrIter si = StrIterFromStr(json);
struct {
"\"name\": \"TechCorp\"}}"
);
StrIter si = StrIterFromStr(json);
struct {
"{\"distance\": 0.92, \"name\": \"helper\"}}}}"
);
StrIter si = StrIterFromStr(json);
typedef Vec(AnnSymbol) Symbols;
"\"nearest_neighbor_function_name_mangled\": \"_Z4main\"}}}}"
);
StrIter si = StrIterFromStr(json);
ApiResponse response = {false, StrInit(), VecInitWithDeepCopy(NULL, AnnSymbolDeinit)};
bool success = true;
Str json = StrInitFromZstr("{\"id\": 12345, \"name\": \"test_func\", \"size\": 1024, \"vaddr\": 4096}");
StrIter si = StrIterFromStr(json);
FunctionInfo info = {0};
bool success = true;
Str json = StrInitFromZstr("{\"id\": 54321, \"name\": \"test_model\"}");
StrIter si = StrIterFromStr(json);
ModelInfo info = {0};
"\"created_at\": \"2024-04-01\", \"model_id\": 12345, \"model_name\": \"test_model\", \"owned_by\": \"user1\"}"
);
StrIter si = StrIterFromStr(json);
SearchResult result = {0};
"\"nearest_neighbor_function_name_mangled\": \"_Z4main\"}}}}"
);
StrIter si = StrIterFromStr(json);
ApiResponse response = {false, StrInit(), VecInitWithDeepCopy(NULL, AnnSymbolDeinit)};
"\"nearest_neighbor_function_name_mangled\": \"_Z4main\"}}}}"
);
StrIter si = StrIterFromStr(json);
ApiResponse response = {false, StrInit(), VecInitWithDeepCopy(NULL, AnnSymbolDeinit)};