Skip to content

Commit 889a2b0

Browse files
Merge pull request #10 from upfluence/am/json-enum
compiler/cpp/src/generate/t_json_generator: Handle enum with particular typeId
2 parents 95ab4bf + 26323d6 commit 889a2b0

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

compiler/cpp/src/generate/t_json_generator.cc

+4-2
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ void t_json_generator::end_array() {
239239

240240
void t_json_generator::write_type_spec_object(const char* name, t_type* ttype) {
241241
ttype = ttype->get_true_type();
242-
if (ttype->is_struct() || ttype->is_xception() || ttype->is_container()) {
242+
if (ttype->is_struct() || ttype->is_xception() || ttype->is_container() || ttype->is_enum()) {
243243
write_key_and(name);
244244
start_object(NO_INDENT);
245245
write_key_and("typeId");
@@ -271,6 +271,8 @@ void t_json_generator::write_type_spec(t_type* ttype) {
271271
t_type* etype = ((t_list*)ttype)->get_elem_type();
272272
write_key_and_string("elemTypeId", get_type_name(etype));
273273
write_type_spec_object("elemType", etype);
274+
} else if (ttype->is_enum()) {
275+
write_key_and_string("class", get_qualified_name(ttype));
274276
}
275277
}
276278

@@ -707,7 +709,7 @@ string t_json_generator::get_type_name(t_type* ttype) {
707709
return "map";
708710
}
709711
if (ttype->is_enum()) {
710-
return "i32";
712+
return "enum";
711713
}
712714
if (ttype->is_struct()) {
713715
return ((t_struct*)ttype)->is_union() ? "union" : "struct";

0 commit comments

Comments
 (0)