@@ -1266,6 +1266,20 @@ private static void generateEnum(
1266
1266
indent (writer , 0 , "}\n " );
1267
1267
1268
1268
// From impl
1269
+ generateFromImplForEnum (enumRustName , primitiveType , messageBody , writer );
1270
+
1271
+ // Into impl
1272
+ generateIntoImplForEnum (enumRustName , primitiveType , messageBody , writer );
1273
+
1274
+ // FromStr impl
1275
+ generateFromStrImplForEnum (enumRustName , primitiveType , messageBody , writer );
1276
+
1277
+ // Display impl
1278
+ generateDisplayImplForEnum (enumRustName , primitiveType , messageBody , writer );
1279
+ }
1280
+
1281
+ private static void generateFromImplForEnum (
1282
+ final String enumRustName , final String primitiveType ,final List <Token > messageBody , final Appendable writer ) throws IOException {
1269
1283
indent (writer , 0 , "impl From<%s> for %s {\n " , primitiveType , enumRustName );
1270
1284
indent (writer , 1 , "#[inline]\n " );
1271
1285
indent (writer , 1 , "fn from(v: %s) -> Self {\n " , primitiveType );
@@ -1283,8 +1297,10 @@ private static void generateEnum(
1283
1297
indent (writer , 2 , "}\n " );
1284
1298
indent (writer , 1 , "}\n " );
1285
1299
indent (writer , 0 , "}\n " );
1300
+ }
1286
1301
1287
- // Into impl
1302
+ private static void generateIntoImplForEnum (
1303
+ final String enumRustName , final String primitiveType ,final List <Token > messageBody , final Appendable writer ) throws IOException {
1288
1304
indent (writer , 0 , "impl Into<%s> for %s {\n " , primitiveType , enumRustName );
1289
1305
indent (writer , 1 , "#[inline]\n " );
1290
1306
indent (writer , 1 , "fn into(self) -> %s {\n " , primitiveType );
@@ -1298,14 +1314,16 @@ private static void generateEnum(
1298
1314
{
1299
1315
final Encoding encoding = messageBody .get (0 ).encoding ();
1300
1316
final CharSequence nullVal = generateRustLiteral (encoding .primitiveType (),
1301
- encoding .applicableNullValue ().toString ());
1317
+ encoding .applicableNullValue ().toString ());
1302
1318
indent (writer , 3 , "Self::NullVal => %s,\n " , nullVal );
1303
1319
}
1304
1320
indent (writer , 2 , "}\n " );
1305
1321
indent (writer , 1 , "}\n " );
1306
1322
indent (writer , 0 , "}\n " );
1323
+ }
1307
1324
1308
- // FromStr impl
1325
+ private static void generateFromStrImplForEnum (
1326
+ final String enumRustName , final String primitiveType ,final List <Token > messageBody , final Appendable writer ) throws IOException {
1309
1327
indent (writer , 0 , "impl core::str::FromStr for %s {\n " , enumRustName );
1310
1328
indent (writer , 1 , "type Err = ();\n \n " );
1311
1329
indent (writer , 1 , "#[inline]\n " );
@@ -1320,8 +1338,10 @@ private static void generateEnum(
1320
1338
indent (writer , 2 , "}\n " );
1321
1339
indent (writer , 1 , "}\n " );
1322
1340
indent (writer , 0 , "}\n " );
1341
+ }
1323
1342
1324
- // Display impl
1343
+ private static void generateDisplayImplForEnum (
1344
+ final String enumRustName , final String primitiveType ,final List <Token > messageBody , final Appendable writer ) throws IOException {
1325
1345
indent (writer , 0 , "impl core::fmt::Display for %s {\n " , enumRustName );
1326
1346
indent (writer , 1 , "#[inline]\n " );
1327
1347
indent (writer , 1 , "fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {\n " , primitiveType );
0 commit comments