Merge pull request #12290 from poettering/json-foreach-love

some small JSON foreach macro love
This commit is contained in:
Yu Watanabe
2019-04-13 18:19:38 +09:00
committed by GitHub
2 changed files with 16 additions and 16 deletions
+5 -3
View File
@@ -135,15 +135,17 @@ struct json_variant_foreach_state {
#define JSON_VARIANT_ARRAY_FOREACH(i, v) \
for (struct json_variant_foreach_state _state = { (v), 0 }; \
_state.idx < json_variant_elements(_state.variant) && \
json_variant_is_array(_state.variant) && \
_state.idx < json_variant_elements(_state.variant) && \
({ i = json_variant_by_index(_state.variant, _state.idx); \
true; }); \
_state.idx++)
#define JSON_VARIANT_OBJECT_FOREACH(k, e, v) \
for (struct json_variant_foreach_state _state = { (v), 0 }; \
_state.idx < json_variant_elements(_state.variant) && \
({ k = json_variant_by_index(_state.variant, _state.idx); \
json_variant_is_object(_state.variant) && \
_state.idx < json_variant_elements(_state.variant) && \
({ k = json_variant_string(json_variant_by_index(_state.variant, _state.idx)); \
e = json_variant_by_index(_state.variant, _state.idx + 1); \
true; }); \
_state.idx += 2)