Skip to content

Commit

Permalink
Update usage disclaimer on FieldOptions.ctype
Browse files Browse the repository at this point in the history
FieldOptions.ctype is public and CORD support is implemented for [ctype=CORD] on "bytes" fields. Include a public comment for CORD about use and supported types.

PiperOrigin-RevId: 524383969
  • Loading branch information
protobuf-github-bot authored and Copybara-Service committed Apr 14, 2023
1 parent faf9e8d commit b8e7192
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/google/protobuf/descriptor.proto
Expand Up @@ -569,13 +569,21 @@ message MessageOptions {
message FieldOptions {
// The ctype option instructs the C++ code generator to use a different
// representation of the field than it normally would. See the specific
// options below. This option is not yet implemented in the open source
// release -- sorry, we'll try to include it in a future version!
// options below. This option is only implemented to support use of
// [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of
// type "bytes" in the open source release -- sorry, we'll try to include
// other types in a future version!
optional CType ctype = 1 [default = STRING];
enum CType {
// Default mode.
STRING = 0;

// The option [ctype=CORD] may be applied to a non-repeated field of type
// "bytes". It indicates that in C++, the data should be stored in a Cord
// instead of a string. For very large strings, this may reduce memory
// fragmentation. It may also allow better performance when parsing from a
// Cord, or when parsing with aliasing enabled, as the parsed Cord may then
// alias the original buffer.
CORD = 1;

STRING_PIECE = 2;
Expand Down

0 comments on commit b8e7192

Please sign in to comment.