summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjake-ruyi <jake@playruyi.com>2018-11-07 16:16:27 +0800
committerJames E. King III <jking@apache.org>2018-11-09 17:56:25 -0500
commitd5bd2005eac7fa4912b60b3a815596c67a348afb (patch)
treec8dab25b10e45fb6cbbf3f9e4f330cc87233b7aa
parentf7d43ce0aa58cc7e33af425140e5a063e3f3a75f (diff)
downloadthrift-d5bd2005eac7fa4912b60b3a815596c67a348afb.tar.gz
THRIFT-4661: Rust enum name wrong case in generated structs
Client: rs
-rw-r--r--compiler/cpp/src/thrift/generate/t_rs_generator.cc2
-rw-r--r--lib/rs/test/src/bin/kitchen_sink_server.rs4
-rw-r--r--lib/rs/test/thrifts/Base_Two.thrift6
3 files changed, 9 insertions, 3 deletions
diff --git a/compiler/cpp/src/thrift/generate/t_rs_generator.cc b/compiler/cpp/src/thrift/generate/t_rs_generator.cc
index dc11fd3ee..5cd67f675 100644
--- a/compiler/cpp/src/thrift/generate/t_rs_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_rs_generator.cc
@@ -3022,7 +3022,7 @@ string t_rs_generator::to_rust_type(t_type* ttype, bool ordered_float) {
rust_type = ttypedef->is_forward_typedef() ? "Box<" + rust_type + ">" : rust_type;
return rust_type;
} else if (ttype->is_enum()) {
- return rust_namespace(ttype) + ttype->get_name();
+ return rust_namespace(ttype) + rust_camel_case(ttype->get_name());
} else if (ttype->is_struct() || ttype->is_xception()) {
return rust_namespace(ttype) + rust_camel_case(ttype->get_name());
} else if (ttype->is_map()) {
diff --git a/lib/rs/test/src/bin/kitchen_sink_server.rs b/lib/rs/test/src/bin/kitchen_sink_server.rs
index 15ceb29dc..ae7026288 100644
--- a/lib/rs/test/src/bin/kitchen_sink_server.rs
+++ b/lib/rs/test/src/bin/kitchen_sink_server.rs
@@ -22,7 +22,7 @@ extern crate kitchen_sink;
extern crate thrift;
use kitchen_sink::base_one::Noodle;
-use kitchen_sink::base_two::{Napkin, NapkinServiceSyncHandler, Ramen, RamenServiceSyncHandler};
+use kitchen_sink::base_two::{BrothType, Napkin, NapkinServiceSyncHandler, Ramen, RamenServiceSyncHandler};
use kitchen_sink::midlayer::{Dessert, Meal, MealServiceSyncHandler, MealServiceSyncProcessor};
use kitchen_sink::recursive;
use kitchen_sink::ultimate::{Drink, FullMeal, FullMealAndDrinks,
@@ -252,7 +252,7 @@ fn noodle() -> Noodle {
}
fn ramen() -> Ramen {
- Ramen::new("Mr Ramen".to_owned(), 72)
+ Ramen::new("Mr Ramen".to_owned(), 72, BrothType::MISO)
}
fn napkin() -> Napkin {
diff --git a/lib/rs/test/thrifts/Base_Two.thrift b/lib/rs/test/thrifts/Base_Two.thrift
index b4b4ea1a5..caa6acb86 100644
--- a/lib/rs/test/thrifts/Base_Two.thrift
+++ b/lib/rs/test/thrifts/Base_Two.thrift
@@ -23,9 +23,15 @@
const i32 WaterWeight = 200
+enum brothType {
+ Miso,
+ shouyu,
+}
+
struct Ramen {
1: optional string ramenType
2: required i32 noodleCount
+ 3: brothType broth
}
struct Napkin {