]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
json: add json_variant_set_field_integer() and json_variant_set_field_boolean() helpers
authorLennart Poettering <lennart@poettering.net>
Thu, 4 Jul 2019 16:27:02 +0000 (18:27 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 2 Dec 2019 08:47:00 +0000 (09:47 +0100)
src/shared/json.c
src/shared/json.h

index d1a477c36d608826b2b6a5b1f7498d988911617c..7c62136703e673047f3139eb8f9ec1f5f8fe3ec5 100644 (file)
@@ -1905,6 +1905,17 @@ int json_variant_set_field_string(JsonVariant **v, const char *field, const char
         return json_variant_set_field(v, field, m);
 }
 
+int json_variant_set_field_integer(JsonVariant **v, const char *field, intmax_t i) {
+        _cleanup_(json_variant_unrefp) JsonVariant *m = NULL;
+        int r;
+
+        r = json_variant_new_integer(&m, i);
+        if (r < 0)
+                return r;
+
+        return json_variant_set_field(v, field, m);
+}
+
 int json_variant_set_field_unsigned(JsonVariant **v, const char *field, uintmax_t u) {
         _cleanup_(json_variant_unrefp) JsonVariant *m = NULL;
         int r;
@@ -1916,6 +1927,17 @@ int json_variant_set_field_unsigned(JsonVariant **v, const char *field, uintmax_
         return json_variant_set_field(v, field, m);
 }
 
+int json_variant_set_field_boolean(JsonVariant **v, const char *field, bool b) {
+        _cleanup_(json_variant_unrefp) JsonVariant *m = NULL;
+        int r;
+
+        r = json_variant_new_boolean(&m, b);
+        if (r < 0)
+                return r;
+
+        return json_variant_set_field(v, field, m);
+}
+
 int json_variant_merge(JsonVariant **v, JsonVariant *m) {
         _cleanup_(json_variant_unrefp) JsonVariant *w = NULL;
         _cleanup_free_ JsonVariant **array = NULL;
index 393e35a647987b23d9d4437da6e0b026cdffd9dd..bb72b43015eb3a05bd279757fb54d09d200443ad 100644 (file)
@@ -178,7 +178,9 @@ int json_variant_filter(JsonVariant **v, char **to_remove);
 
 int json_variant_set_field(JsonVariant **v, const char *field, JsonVariant *value);
 int json_variant_set_field_string(JsonVariant **v, const char *field, const char *value);
+int json_variant_set_field_integer(JsonVariant **v, const char *field, intmax_t value);
 int json_variant_set_field_unsigned(JsonVariant **v, const char *field, uintmax_t value);
+int json_variant_set_field_boolean(JsonVariant **v, const char *field, bool b);
 
 int json_variant_append_array(JsonVariant **v, JsonVariant *element);