diff options
author | jake-ruyi <jake@playruyi.com> | 2018-11-07 16:16:27 +0800 |
---|---|---|
committer | James E. King III <jking@apache.org> | 2018-11-09 17:56:25 -0500 |
commit | d5bd2005eac7fa4912b60b3a815596c67a348afb (patch) | |
tree | c8dab25b10e45fb6cbbf3f9e4f330cc87233b7aa | |
parent | f7d43ce0aa58cc7e33af425140e5a063e3f3a75f (diff) | |
download | thrift-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.cc | 2 | ||||
-rw-r--r-- | lib/rs/test/src/bin/kitchen_sink_server.rs | 4 | ||||
-rw-r--r-- | lib/rs/test/thrifts/Base_Two.thrift | 6 |
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 { |