json: add new helper json_variant_new_base64()
This commit is contained in:
@@ -411,6 +411,20 @@ int json_variant_new_stringn(JsonVariant **ret, const char *s, size_t n) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int json_variant_new_base64(JsonVariant **ret, const void *p, size_t n) {
|
||||
_cleanup_free_ char *s = NULL;
|
||||
ssize_t k;
|
||||
|
||||
assert_return(ret, -EINVAL);
|
||||
assert_return(n == 0 || p, -EINVAL);
|
||||
|
||||
k = base64mem(p, n, &s);
|
||||
if (k < 0)
|
||||
return k;
|
||||
|
||||
return json_variant_new_stringn(ret, s, k);
|
||||
}
|
||||
|
||||
static void json_variant_set(JsonVariant *a, JsonVariant *b) {
|
||||
assert(a);
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ typedef enum JsonVariantType {
|
||||
} JsonVariantType;
|
||||
|
||||
int json_variant_new_stringn(JsonVariant **ret, const char *s, size_t n);
|
||||
int json_variant_new_base64(JsonVariant **ret, const void *p, size_t n);
|
||||
int json_variant_new_integer(JsonVariant **ret, intmax_t i);
|
||||
int json_variant_new_unsigned(JsonVariant **ret, uintmax_t u);
|
||||
int json_variant_new_real(JsonVariant **ret, long double d);
|
||||
|
||||
Reference in New Issue
Block a user