mirror of
https://github.com/emqx/neuron.git
synced 2026-10-29 07:06:32 +08:00
support array string
This commit is contained in:
@@ -893,6 +893,11 @@ static inline void neu_trans_data_free(neu_reqresp_trans_data_t *data)
|
||||
{
|
||||
if (tag_value->value.type == NEU_TYPE_PTR) {
|
||||
free(tag_value->value.value.ptr.ptr);
|
||||
} else if (tag_value->value.type == NEU_TYPE_ARRAY_STRING) {
|
||||
for (size_t i = 0; i < tag_value->value.value.strs.length;
|
||||
++i) {
|
||||
free(tag_value->value.value.strs.strs[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
utarray_free(data->tags);
|
||||
@@ -1087,6 +1092,12 @@ static inline void neu_tag_value_to_json(neu_resp_tag_value_meta_t *tag_value,
|
||||
tag_json->value.val_array_double.f64s =
|
||||
tag_value->value.value.f64s.f64s;
|
||||
break;
|
||||
case NEU_TYPE_ARRAY_STRING:
|
||||
tag_json->t = NEU_JSON_ARRAY_STR;
|
||||
tag_json->value.val_array_str.length =
|
||||
tag_value->value.value.strs.length;
|
||||
tag_json->value.val_array_str.p_strs = tag_value->value.value.strs.strs;
|
||||
break;
|
||||
case NEU_TYPE_CUSTOM:
|
||||
tag_json->t = NEU_JSON_OBJECT;
|
||||
tag_json->value.val_object = tag_value->value.value.json;
|
||||
@@ -1289,6 +1300,12 @@ neu_tag_value_to_json_paginate(neu_resp_tag_value_meta_paginate_t *tag_value,
|
||||
tag_json->value.val_array_double.f64s =
|
||||
tag_value->value.value.f64s.f64s;
|
||||
break;
|
||||
case NEU_TYPE_ARRAY_STRING:
|
||||
tag_json->t = NEU_JSON_ARRAY_STR;
|
||||
tag_json->value.val_array_str.length =
|
||||
tag_value->value.value.strs.length;
|
||||
tag_json->value.val_array_str.p_strs = tag_value->value.value.strs.strs;
|
||||
break;
|
||||
case NEU_TYPE_CUSTOM:
|
||||
tag_json->t = NEU_JSON_OBJECT;
|
||||
tag_json->value.val_object = tag_value->value.value.json;
|
||||
|
||||
@@ -67,6 +67,7 @@ typedef enum {
|
||||
NEU_TYPE_ARRAY_FLOAT = 31,
|
||||
NEU_TYPE_ARRAY_DOUBLE = 32,
|
||||
NEU_TYPE_ARRAY_BOOL = 33,
|
||||
NEU_TYPE_ARRAY_STRING = 34,
|
||||
NEU_TYPE_CUSTOM = 40,
|
||||
} neu_type_e;
|
||||
|
||||
@@ -139,6 +140,8 @@ inline static const char *neu_type_string(neu_type_e type)
|
||||
return "NEU_TYPE_ARRAY_FLOAT";
|
||||
case NEU_TYPE_ARRAY_BOOL:
|
||||
return "NEU_TYPE_ARRAY_BOOL";
|
||||
case NEU_TYPE_ARRAY_STRING:
|
||||
return "NEU_TYPE_ARRAY_STRING";
|
||||
case NEU_TYPE_CUSTOM:
|
||||
return "NEU_TYPE_CUSTOM";
|
||||
}
|
||||
@@ -214,6 +217,11 @@ typedef struct {
|
||||
uint8_t length;
|
||||
} neu_value_array_bool_t;
|
||||
|
||||
typedef struct {
|
||||
char * strs[NEU_VALUE_SIZE];
|
||||
uint8_t length;
|
||||
} neu_value_array_string_t;
|
||||
|
||||
typedef union {
|
||||
bool boolean;
|
||||
int8_t i8;
|
||||
@@ -241,6 +249,7 @@ typedef union {
|
||||
neu_value_array_float_t f32s;
|
||||
neu_value_array_double_t f64s;
|
||||
neu_value_array_bool_t bools;
|
||||
neu_value_array_string_t strs;
|
||||
} neu_value_u;
|
||||
|
||||
static inline char *neu_value_str(neu_type_e type, neu_value_u value)
|
||||
|
||||
Reference in New Issue
Block a user