summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorJens Geyer <jensg@apache.org>2022-06-05 11:36:40 +0200
committerJens Geyer <jensg@apache.org>2022-09-05 22:04:21 +0200
commit18564d29cf804e5ab6440c781c99889520656886 (patch)
tree9f0fb5ad2b97a7b967a91264b76bfb81a500cc0f /compiler
parent4a147ad9db5040b574fd62f7eb1a59e034b8c8ca (diff)
downloadthrift-18564d29cf804e5ab6440c781c99889520656886.tar.gz
THRIFT-5593 Implement uuid for Haxe
Client: hx Patch: Jens Geyer Relies on https://github.com/flashultra/uuid/issues/4 being fixed, thus may require using the most recent uuid package from Github instead of the Haxelib package.
Diffstat (limited to 'compiler')
-rw-r--r--compiler/cpp/src/thrift/generate/t_haxe_generator.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/compiler/cpp/src/thrift/generate/t_haxe_generator.cc b/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
index fdd21f2a3..8893742d4 100644
--- a/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
@@ -544,6 +544,9 @@ void t_haxe_generator::render_const_value(std::ostream& out,
case t_base_type::TYPE_STRING:
out << '"' << get_escaped_string(value) << '"';
break;
+ case t_base_type::TYPE_UUID:
+ out << '"' << get_escaped_string(value) << '"';
+ break;
case t_base_type::TYPE_BOOL:
out << ((value->get_integer() > 0) ? "true" : "false");
break;
@@ -1443,6 +1446,9 @@ std::string t_haxe_generator::get_haxe_type_string(t_type* type) {
case t_base_type::TYPE_STRING:
return "TType.STRING";
break;
+ case t_base_type::TYPE_UUID:
+ return "TType.UUID";
+ break;
case t_base_type::TYPE_BOOL:
return "TType.BOOL";
break;
@@ -2222,6 +2228,9 @@ void t_haxe_generator::generate_deserialize_field(ostream& out, t_field* tfield,
out << "readString();";
}
break;
+ case t_base_type::TYPE_UUID:
+ out << "readUuid();";
+ break;
case t_base_type::TYPE_BOOL:
out << "readBool();";
break;
@@ -2406,6 +2415,9 @@ void t_haxe_generator::generate_serialize_field(ostream& out, t_field* tfield, s
out << "writeString(" << name << ");";
}
break;
+ case t_base_type::TYPE_UUID:
+ out << "writeUuid(" << name << ");";
+ break;
case t_base_type::TYPE_BOOL:
out << "writeBool(" << name << ");";
break;
@@ -2651,6 +2663,8 @@ string t_haxe_generator::base_type_name(t_base_type* type, bool in_container) {
} else {
return "String";
}
+ case t_base_type::TYPE_UUID:
+ return "String";
case t_base_type::TYPE_BOOL:
return "Bool";
case t_base_type::TYPE_I8:
@@ -2686,6 +2700,9 @@ string t_haxe_generator::declare_field(t_field* tfield, bool init) {
case t_base_type::TYPE_STRING:
result += " = null";
break;
+ case t_base_type::TYPE_UUID:
+ result += " = uuid.Uuid.NIL";
+ break;
case t_base_type::TYPE_BOOL:
result += " = false";
break;
@@ -2795,6 +2812,8 @@ string t_haxe_generator::type_to_enum(t_type* type) {
throw "NO T_VOID CONSTRUCT";
case t_base_type::TYPE_STRING:
return "TType.STRING";
+ case t_base_type::TYPE_UUID:
+ return "TType.UUID";
case t_base_type::TYPE_BOOL:
return "TType.BOOL";
case t_base_type::TYPE_I8: