THRIFT-4529: Rust enum variants are now camel-cased
Client: rs
diff --git a/lib/rs/test/src/bin/kitchen_sink_server.rs b/lib/rs/test/src/bin/kitchen_sink_server.rs
index ae70262..e2c4a27 100644
--- a/lib/rs/test/src/bin/kitchen_sink_server.rs
+++ b/lib/rs/test/src/bin/kitchen_sink_server.rs
@@ -17,23 +17,23 @@
#[macro_use]
extern crate clap;
-
extern crate kitchen_sink;
extern crate thrift;
+use thrift::protocol::{TBinaryInputProtocolFactory, TBinaryOutputProtocolFactory,
+ TCompactInputProtocolFactory, TCompactOutputProtocolFactory,
+ TInputProtocolFactory, TOutputProtocolFactory};
+use thrift::server::TServer;
+use thrift::transport::{TFramedReadTransportFactory, TFramedWriteTransportFactory,
+ TReadTransportFactory, TWriteTransportFactory};
+
use kitchen_sink::base_one::Noodle;
use kitchen_sink::base_two::{BrothType, Napkin, NapkinServiceSyncHandler, Ramen, RamenServiceSyncHandler};
-use kitchen_sink::midlayer::{Dessert, Meal, MealServiceSyncHandler, MealServiceSyncProcessor};
+use kitchen_sink::midlayer::{Dessert, Meal, MealServiceSyncHandler, MealServiceSyncProcessor, Pie};
use kitchen_sink::recursive;
use kitchen_sink::ultimate::{Drink, FullMeal, FullMealAndDrinks,
FullMealAndDrinksServiceSyncProcessor, FullMealServiceSyncHandler};
use kitchen_sink::ultimate::FullMealAndDrinksServiceSyncHandler;
-use thrift::protocol::{TBinaryInputProtocolFactory, TBinaryOutputProtocolFactory,
- TCompactInputProtocolFactory, TCompactOutputProtocolFactory,
- TInputProtocolFactory, TOutputProtocolFactory};
-use thrift::transport::{TFramedReadTransportFactory, TFramedWriteTransportFactory,
- TReadTransportFactory, TWriteTransportFactory};
-use thrift::server::TServer;
fn main() {
match run() {
@@ -207,7 +207,13 @@
impl FullMealAndDrinksServiceSyncHandler for FullHandler {
fn handle_full_meal_and_drinks(&self) -> thrift::Result<FullMealAndDrinks> {
- Ok(FullMealAndDrinks::new(full_meal(), Drink::WHISKEY))
+ println!("full_meal_and_drinks: handling full meal and drinks call");
+ Ok(FullMealAndDrinks::new(full_meal(), Drink::CanadianWhisky))
+ }
+
+ fn handle_best_pie(&self) -> thrift::Result<Pie> {
+ println!("full_meal_and_drinks: handling pie call");
+ Ok(Pie::MississippiMud) // I prefer Pie::Pumpkin, but I have to check that casing works
}
}
@@ -252,7 +258,7 @@
}
fn ramen() -> Ramen {
- Ramen::new("Mr Ramen".to_owned(), 72, BrothType::MISO)
+ Ramen::new("Mr Ramen".to_owned(), 72, BrothType::Miso)
}
fn napkin() -> Napkin {
diff --git a/lib/rs/test/thrifts/Midlayer.thrift b/lib/rs/test/thrifts/Midlayer.thrift
index cf1157c..16ff49b 100644
--- a/lib/rs/test/thrifts/Midlayer.thrift
+++ b/lib/rs/test/thrifts/Midlayer.thrift
@@ -46,6 +46,15 @@
[6, 7, 8]
]
+enum Pie {
+ PUMPKIN,
+ apple, // intentionally poorly cased
+ STRAWBERRY_RHUBARB,
+ Key_Lime, // intentionally poorly cased
+ coconut_Cream, // intentionally poorly cased
+ mississippi_mud, // intentionally poorly cased
+}
+
struct Meal {
1: Base_One.Noodle noodle
2: Base_Two.Ramen ramen
diff --git a/lib/rs/test/thrifts/Ultimate.thrift b/lib/rs/test/thrifts/Ultimate.thrift
index 8154d91..72fa100 100644
--- a/lib/rs/test/thrifts/Ultimate.thrift
+++ b/lib/rs/test/thrifts/Ultimate.thrift
@@ -27,6 +27,21 @@
WATER,
WHISKEY,
WINE,
+ scotch, // intentionally poorly cased
+ LATE_HARVEST_WINE,
+ India_Pale_Ale, // intentionally poorly cased
+ apple_cider, // intentially poorly cased
+ belgian_Ale, // intentionally poorly cased
+ Canadian_whisky, // intentionally poorly cased
+}
+
+const map<i8, Midlayer.Pie> RankedPies = {
+ 1: Midlayer.Pie.PUMPKIN,
+ 2: Midlayer.Pie.STRAWBERRY_RHUBARB,
+ 3: Midlayer.Pie.apple,
+ 4: Midlayer.Pie.mississippi_mud,
+ 5: Midlayer.Pie.coconut_Cream,
+ 6: Midlayer.Pie.Key_Lime,
}
struct FullMeal {
@@ -45,5 +60,7 @@
service FullMealAndDrinksService extends FullMealService {
FullMealAndDrinks fullMealAndDrinks()
+
+ Midlayer.Pie bestPie()
}