Field names: Numbers
This rule enforces that field names do not begin any word in the field with a number, as mandated in AIP-140.
Details
This rule checks every field in the proto and complains if any individual word
begins with a number. It treats the underscore (_
) character as the only word
separator for this purpose.
Examples
Incorrect code for this rule:
// Incorrect.
message Book {
string name = 1;
int32 review_90th_percentile_stars = 2;
}
Correct code for this rule:
The correct code here is likely to vary based on the situation. This may be fixed by spelling out the number:
// Correct.
message Book {
string name = 1;
int32 review_ninetieth_percentile_stars = 2;
}
Many cases we see involving numbers like this may be better designed with a map:
// Correct.
message Book {
string name = 1;
map<int32, int32> review_stars_per_percentile = 2;
}
Disabling
If you need to violate this rule, use a leading comment above the method. Remember to also include an aip.dev/not-precedent comment explaining why.
// (-- api-linter: core::0140::numbers=disabled
// aip.dev/not-precedent: We need to do this because reasons. --)
message Book {
string name = 1;
int32 review_90th_percentile_stars = 2;
}
If you need to violate this rule for an entire file, place the comment at the top of the file.