]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
json: add new json_variant_is_blank_{object,array}() helpers
authorLennart Poettering <lennart@poettering.net>
Thu, 4 Jul 2019 15:38:17 +0000 (17:38 +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 c3efb11bbbc91de6e2ae859c144465eaabc42c46..84ad6dd02ba8098b9e6dbeb6244e28888dcbd64a 100644 (file)
@@ -946,6 +946,19 @@ mismatch:
         return false;
 }
 
+bool json_variant_is_blank_object(JsonVariant *v) {
+        /* Returns true if the specified object is null or empty */
+        return !v ||
+                json_variant_is_null(v) ||
+                (json_variant_is_object(v) && json_variant_elements(v) == 0);
+}
+
+bool json_variant_is_blank_array(JsonVariant *v) {
+        return !v ||
+                json_variant_is_null(v) ||
+                (json_variant_is_array(v) && json_variant_elements(v) == 0);
+}
+
 JsonVariantType json_variant_type(JsonVariant *v) {
 
         if (!v)
index 1f9c620ebb8160031e73f73a21c7e1efd3d06cbc..59962049d7010c264bbd697506935ab22300f5cb 100644 (file)
@@ -120,6 +120,8 @@ static inline bool json_variant_is_null(JsonVariant *v) {
 }
 
 bool json_variant_is_negative(JsonVariant *v);
+bool json_variant_is_blank_object(JsonVariant *v);
+bool json_variant_is_blank_array(JsonVariant *v);
 
 size_t json_variant_elements(JsonVariant *v);
 JsonVariant *json_variant_by_index(JsonVariant *v, size_t index);