mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-20 03:15:05 +00:00
Use ConvertCase instead of Make{Upper,Lower,Snake} implementations (#7127)
* Unified name case conversion to single method * Convert bfbs_gen to use ConvertCase * convert rust to use ConvertCase * Convert idl_parser to use ConvertCase * Convert MakeScreamingCamel to ConvertCase * Replaced MakeCamel with ConvertCase * minor fixes
This commit is contained in:
@@ -46,10 +46,12 @@ static const char *keywords[] = {
|
||||
// Escape Keywords
|
||||
static std::string Esc(const std::string &name) {
|
||||
for (size_t i = 0; i < sizeof(keywords) / sizeof(keywords[0]); i++) {
|
||||
if (name == keywords[i]) { return MakeCamel(name + "_", false); }
|
||||
if (name == keywords[i]) {
|
||||
return ConvertCase(name + "_", Case::kLowerCamel);
|
||||
}
|
||||
}
|
||||
|
||||
return MakeCamel(name, false);
|
||||
return ConvertCase(name, Case::kLowerCamel);
|
||||
}
|
||||
|
||||
class KotlinGenerator : public BaseGenerator {
|
||||
@@ -337,7 +339,8 @@ class KotlinGenerator : public BaseGenerator {
|
||||
case BASE_TYPE_UTYPE: return bb_var_name + ".get";
|
||||
case BASE_TYPE_BOOL: return "0.toByte() != " + bb_var_name + ".get";
|
||||
default:
|
||||
return bb_var_name + ".get" + MakeCamel(GenTypeBasic(type.base_type));
|
||||
return bb_var_name + ".get" +
|
||||
ConvertCase(GenTypeBasic(type.base_type), Case::kUpperCamel);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -357,7 +360,9 @@ class KotlinGenerator : public BaseGenerator {
|
||||
case BASE_TYPE_BOOL:
|
||||
case BASE_TYPE_NONE:
|
||||
case BASE_TYPE_UTYPE: return "bb.put";
|
||||
default: return "bb.put" + MakeCamel(GenTypeBasic(type.base_type));
|
||||
default:
|
||||
return "bb.put" +
|
||||
ConvertCase(GenTypeBasic(type.base_type), Case::kUpperCamel);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
@@ -394,7 +399,7 @@ class KotlinGenerator : public BaseGenerator {
|
||||
(nameprefix + (field.name + "_")).c_str());
|
||||
} else {
|
||||
writer += std::string(", ") + nameprefix + "\\";
|
||||
writer += MakeCamel(field.name) + ": \\";
|
||||
writer += ConvertCase(field.name, Case::kUpperCamel) + ": \\";
|
||||
writer += GenTypeBasic(field.value.type.base_type) + "\\";
|
||||
}
|
||||
}
|
||||
@@ -421,8 +426,8 @@ class KotlinGenerator : public BaseGenerator {
|
||||
(nameprefix + (field.name + "_")).c_str());
|
||||
} else {
|
||||
writer.SetValue("type", GenMethod(field.value.type));
|
||||
writer.SetValue("argname",
|
||||
nameprefix + MakeCamel(Esc(field.name), false));
|
||||
writer.SetValue("argname", nameprefix + ConvertCase(Esc(field.name),
|
||||
Case::kLowerCamel));
|
||||
writer.SetValue("cast", CastToSigned(field.value.type));
|
||||
writer += "builder.put{{type}}({{argname}}{{cast}})";
|
||||
}
|
||||
@@ -656,7 +661,8 @@ class KotlinGenerator : public BaseGenerator {
|
||||
void GenerateCreateVectorField(FieldDef &field, CodeWriter &writer,
|
||||
const IDLOptions options) const {
|
||||
auto vector_type = field.value.type.VectorType();
|
||||
auto method_name = "create" + MakeCamel(Esc(field.name)) + "Vector";
|
||||
auto method_name =
|
||||
"create" + ConvertCase(Esc(field.name), Case::kUpperCamel) + "Vector";
|
||||
auto params = "builder: FlatBufferBuilder, data: " +
|
||||
GenTypeBasic(vector_type.base_type) + "Array";
|
||||
writer.SetValue("size", NumToString(InlineSize(vector_type)));
|
||||
@@ -688,8 +694,9 @@ class KotlinGenerator : public BaseGenerator {
|
||||
writer.SetValue("align", NumToString(InlineAlignment(vector_type)));
|
||||
|
||||
GenerateFunOneLine(
|
||||
writer, "start" + MakeCamel(Esc(field.name) + "Vector", true), params,
|
||||
"",
|
||||
writer,
|
||||
"start" + ConvertCase(Esc(field.name) + "Vector", Case::kUpperCamel),
|
||||
params, "",
|
||||
[&]() {
|
||||
writer += "builder.startVector({{size}}, numElems, {{align}})";
|
||||
},
|
||||
@@ -699,14 +706,16 @@ class KotlinGenerator : public BaseGenerator {
|
||||
void GenerateAddField(std::string field_pos, FieldDef &field,
|
||||
CodeWriter &writer, const IDLOptions options) const {
|
||||
auto field_type = GenTypeBasic(field.value.type.base_type);
|
||||
auto secondArg = MakeCamel(Esc(field.name), false) + ": " + field_type;
|
||||
auto secondArg =
|
||||
ConvertCase(Esc(field.name), Case::kLowerCamel) + ": " + field_type;
|
||||
|
||||
GenerateFunOneLine(
|
||||
writer, "add" + MakeCamel(Esc(field.name), true),
|
||||
writer, "add" + ConvertCase(Esc(field.name), Case::kUpperCamel),
|
||||
"builder: FlatBufferBuilder, " + secondArg, "",
|
||||
[&]() {
|
||||
auto method = GenMethod(field.value.type);
|
||||
writer.SetValue("field_name", MakeCamel(Esc(field.name), false));
|
||||
writer.SetValue("field_name",
|
||||
ConvertCase(Esc(field.name), Case::kLowerCamel));
|
||||
writer.SetValue("method_name", method);
|
||||
writer.SetValue("pos", field_pos);
|
||||
writer.SetValue("default", GenFBBDefaultValue(field));
|
||||
@@ -797,7 +806,7 @@ class KotlinGenerator : public BaseGenerator {
|
||||
for (auto it = fields_vec.begin(); it != fields_vec.end(); ++it) {
|
||||
auto &field = **it;
|
||||
if (field.deprecated) continue;
|
||||
params << ", " << MakeCamel(Esc(field.name), false);
|
||||
params << ", " << ConvertCase(Esc(field.name), Case::kLowerCamel);
|
||||
if (!IsScalar(field.value.type.base_type)) {
|
||||
params << "Offset: ";
|
||||
} else {
|
||||
@@ -823,10 +832,11 @@ class KotlinGenerator : public BaseGenerator {
|
||||
auto base_type_size = SizeOf(field.value.type.base_type);
|
||||
if (!field.deprecated &&
|
||||
(!sortbysize || size == base_type_size)) {
|
||||
writer.SetValue("camel_field_name",
|
||||
MakeCamel(Esc(field.name), true));
|
||||
writer.SetValue("field_name",
|
||||
MakeCamel(Esc(field.name), false));
|
||||
writer.SetValue(
|
||||
"camel_field_name",
|
||||
ConvertCase(Esc(field.name), Case::kUpperCamel));
|
||||
writer.SetValue("field_name", ConvertCase(Esc(field.name),
|
||||
Case::kLowerCamel));
|
||||
|
||||
// we wrap on null check for scalar optionals
|
||||
writer += field.IsScalarOptional()
|
||||
@@ -853,7 +863,7 @@ class KotlinGenerator : public BaseGenerator {
|
||||
// Check if a buffer has the identifier.
|
||||
if (parser_.root_struct_def_ != &struct_def || !file_identifier.length())
|
||||
return;
|
||||
auto name = MakeCamel(Esc(struct_def.name), false);
|
||||
auto name = ConvertCase(Esc(struct_def.name), Case::kLowerCamel);
|
||||
GenerateFunOneLine(
|
||||
writer, name + "BufferHasIdentifier", "_bb: ByteBuffer", "Boolean",
|
||||
[&]() {
|
||||
@@ -872,7 +882,7 @@ class KotlinGenerator : public BaseGenerator {
|
||||
|
||||
GenerateComment(field.doc_comment, writer, &comment_config);
|
||||
|
||||
auto field_name = MakeCamel(Esc(field.name), false);
|
||||
auto field_name = ConvertCase(Esc(field.name), Case::kLowerCamel);
|
||||
auto field_type = GenTypeGet(field.value.type);
|
||||
auto field_default_value = GenDefaultValue(field);
|
||||
auto return_type = GetterReturnType(field);
|
||||
@@ -1043,7 +1053,8 @@ class KotlinGenerator : public BaseGenerator {
|
||||
auto &kfield = **kit;
|
||||
if (kfield.key) {
|
||||
auto qualified_name = WrapInNameSpace(sd);
|
||||
auto name = MakeCamel(Esc(field.name), false) + "ByKey";
|
||||
auto name =
|
||||
ConvertCase(Esc(field.name), Case::kLowerCamel) + "ByKey";
|
||||
auto params = "key: " + GenTypeGet(kfield.value.type);
|
||||
auto rtype = qualified_name + "?";
|
||||
GenerateFun(writer, name, params, rtype, [&]() {
|
||||
@@ -1136,7 +1147,7 @@ class KotlinGenerator : public BaseGenerator {
|
||||
auto underlying_type = value_base_type == BASE_TYPE_VECTOR
|
||||
? value_type.VectorType()
|
||||
: value_type;
|
||||
auto name = "mutate" + MakeCamel(Esc(field.name), true);
|
||||
auto name = "mutate" + ConvertCase(Esc(field.name), Case::kUpperCamel);
|
||||
auto size = NumToString(InlineSize(underlying_type));
|
||||
auto params = Esc(field.name) + ": " + GenTypeGet(underlying_type);
|
||||
// A vector mutator also needs the index of the vector element it should
|
||||
@@ -1339,8 +1350,8 @@ class KotlinGenerator : public BaseGenerator {
|
||||
out << StructConstructorParams(*field.value.type.struct_def,
|
||||
prefix + (Esc(field.name) + "_"));
|
||||
} else {
|
||||
out << ", " << prefix << MakeCamel(Esc(field.name), false) << ": "
|
||||
<< GenTypeBasic(field.value.type.base_type);
|
||||
out << ", " << prefix << ConvertCase(Esc(field.name), Case::kLowerCamel)
|
||||
<< ": " << GenTypeBasic(field.value.type.base_type);
|
||||
}
|
||||
}
|
||||
return out.str();
|
||||
|
||||
Reference in New Issue
Block a user