diff --git a/.travis.yml b/.travis.yml index b7c4c9731d..3773aff11b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,12 +5,14 @@ go: - 1.10.x - 1.11.x - 1.12.x +- 1.13.x +- 1.14.x - 1.x install: - go get -v -d google.golang.org/grpc - go get -v -d -t github.com/golang/protobuf/... - - curl -L https://github.com/google/protobuf/releases/download/v3.6.1/protoc-3.6.1-linux-x86_64.zip -o /tmp/protoc.zip + - curl -L https://github.com/google/protobuf/releases/download/v3.11.4/protoc-3.11.4-linux-x86_64.zip -o /tmp/protoc.zip - unzip /tmp/protoc.zip -d "$HOME"/protoc - mkdir -p "$HOME"/src && ln -s "$HOME"/protoc "$HOME"/src/protobuf diff --git a/jsonpb/jsonpb_test_proto/more_test_objects.pb.go b/jsonpb/jsonpb_test_proto/more_test_objects.pb.go index ef8bc343ff..87f9e2443f 100644 --- a/jsonpb/jsonpb_test_proto/more_test_objects.pb.go +++ b/jsonpb/jsonpb_test_proto/more_test_objects.pb.go @@ -335,7 +335,9 @@ func init() { proto.RegisterMapType((map[uint64]bool)(nil), "jsonpb.Mappy.U64boolyEntry") } -func init() { proto.RegisterFile("more_test_objects.proto", fileDescriptor_e6c135db3023e377) } +func init() { + proto.RegisterFile("more_test_objects.proto", fileDescriptor_e6c135db3023e377) +} var fileDescriptor_e6c135db3023e377 = []byte{ // 526 bytes of a gzipped FileDescriptorProto diff --git a/jsonpb/jsonpb_test_proto/test_objects.pb.go b/jsonpb/jsonpb_test_proto/test_objects.pb.go index 9f4a97e205..8a90476011 100644 --- a/jsonpb/jsonpb_test_proto/test_objects.pb.go +++ b/jsonpb/jsonpb_test_proto/test_objects.pb.go @@ -1174,7 +1174,9 @@ func init() { proto.RegisterExtension(E_Extm) } -func init() { proto.RegisterFile("test_objects.proto", fileDescriptor_e97c739a0ce14cc6) } +func init() { + proto.RegisterFile("test_objects.proto", fileDescriptor_e97c739a0ce14cc6) +} var fileDescriptor_e97c739a0ce14cc6 = []byte{ // 1460 bytes of a gzipped FileDescriptorProto diff --git a/proto/proto3_proto/proto3.pb.go b/proto/proto3_proto/proto3.pb.go index 9a754c8acd..6c7b6c9cd0 100644 --- a/proto/proto3_proto/proto3.pb.go +++ b/proto/proto3_proto/proto3.pb.go @@ -514,7 +514,9 @@ func init() { proto.RegisterMapType((map[int64]string)(nil), "proto3_proto.TestUTF8.MapValueEntry") } -func init() { proto.RegisterFile("proto3_proto/proto3.proto", fileDescriptor_1c50d9b824d4ac38) } +func init() { + proto.RegisterFile("proto3_proto/proto3.proto", fileDescriptor_1c50d9b824d4ac38) +} var fileDescriptor_1c50d9b824d4ac38 = []byte{ // 896 bytes of a gzipped FileDescriptorProto diff --git a/proto/test_proto/test.pb.go b/proto/test_proto/test.pb.go index 624e834a45..1a24a2ee95 100644 --- a/proto/test_proto/test.pb.go +++ b/proto/test_proto/test.pb.go @@ -4619,7 +4619,9 @@ func init() { proto.RegisterExtension(E_X250) } -func init() { proto.RegisterFile("test_proto/test.proto", fileDescriptor_8ca34d01332f1402) } +func init() { + proto.RegisterFile("test_proto/test.proto", fileDescriptor_8ca34d01332f1402) +} var fileDescriptor_8ca34d01332f1402 = []byte{ // 4795 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/descriptor/descriptor.pb.go b/protoc-gen-go/descriptor/descriptor.pb.go index 1ded05bbe7..d371d56974 100644 --- a/protoc-gen-go/descriptor/descriptor.pb.go +++ b/protoc-gen-go/descriptor/descriptor.pb.go @@ -1376,8 +1376,8 @@ type FileOptions struct { // determining the namespace. PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` // Use this option to change the namespace of php generated metadata classes. - // Default is empty. When this option is empty, the proto file name will be used - // for determining the namespace. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"` // Use this option to change the package of ruby generated classes. Default // is empty. When this option is not set, the package name will be used for @@ -1627,7 +1627,7 @@ type MessageOptions struct { // // Implementations may choose not to generate the map_entry=true message, but // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementions still need to work as + // The reflection APIs in such implementations still need to work as // if the field is a repeated message field. // // NOTE: Do not set the option in .proto files. Always use the maps syntax @@ -2377,7 +2377,7 @@ type SourceCodeInfo struct { // beginning of the "extend" block and is shared by all extensions within // the block. // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendent. For example, a "group" defines + // does not mean that it is a descendant. For example, a "group" defines // both a type and a field in a single declaration. Thus, the locations // corresponding to the type and field and their components will overlap. // - Code which tries to interpret locations should probably be designed to @@ -2718,7 +2718,9 @@ func init() { proto.RegisterType((*GeneratedCodeInfo_Annotation)(nil), "google.protobuf.GeneratedCodeInfo.Annotation") } -func init() { proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor_e5baabe45344a177) } +func init() { + proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor_e5baabe45344a177) +} var fileDescriptor_e5baabe45344a177 = []byte{ // 2589 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/descriptor/descriptor.proto b/protoc-gen-go/descriptor/descriptor.proto index ed08fcbc54..a2102d7aa9 100644 --- a/protoc-gen-go/descriptor/descriptor.proto +++ b/protoc-gen-go/descriptor/descriptor.proto @@ -40,6 +40,7 @@ syntax = "proto2"; package google.protobuf; + option go_package = "github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor"; option java_package = "com.google.protobuf"; option java_outer_classname = "DescriptorProtos"; @@ -59,8 +60,8 @@ message FileDescriptorSet { // Describes a complete .proto file. message FileDescriptorProto { - optional string name = 1; // file name, relative to root of source tree - optional string package = 2; // e.g. "foo", "foo.bar", etc. + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. // Names of files imported by this file. repeated string dependency = 3; @@ -100,8 +101,8 @@ message DescriptorProto { repeated EnumDescriptorProto enum_type = 4; message ExtensionRange { - optional int32 start = 1; - optional int32 end = 2; + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. optional ExtensionRangeOptions options = 3; } @@ -115,8 +116,8 @@ message DescriptorProto { // fields or extension ranges in the same message. Reserved ranges may // not overlap. message ReservedRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Exclusive. + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. } repeated ReservedRange reserved_range = 9; // Reserved field names, which may not be used by fields in the same message. @@ -137,42 +138,42 @@ message FieldDescriptorProto { enum Type { // 0 is reserved for errors. // Order is weird for historical reasons. - TYPE_DOUBLE = 1; - TYPE_FLOAT = 2; + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if // negative values are likely. - TYPE_INT64 = 3; - TYPE_UINT64 = 4; + TYPE_INT64 = 3; + TYPE_UINT64 = 4; // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if // negative values are likely. - TYPE_INT32 = 5; - TYPE_FIXED64 = 6; - TYPE_FIXED32 = 7; - TYPE_BOOL = 8; - TYPE_STRING = 9; + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; // Tag-delimited aggregate. // Group type is deprecated and not supported in proto3. However, Proto3 // implementations should still be able to parse the group wire format and // treat group fields as unknown fields. - TYPE_GROUP = 10; - TYPE_MESSAGE = 11; // Length-delimited aggregate. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. // New in version 2. - TYPE_BYTES = 12; - TYPE_UINT32 = 13; - TYPE_ENUM = 14; - TYPE_SFIXED32 = 15; - TYPE_SFIXED64 = 16; - TYPE_SINT32 = 17; // Uses ZigZag encoding. - TYPE_SINT64 = 18; // Uses ZigZag encoding. - }; + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + } enum Label { // 0 is reserved for errors - LABEL_OPTIONAL = 1; - LABEL_REQUIRED = 2; - LABEL_REPEATED = 3; - }; + LABEL_OPTIONAL = 1; + LABEL_REQUIRED = 2; + LABEL_REPEATED = 3; + } optional string name = 1; optional int32 number = 3; @@ -234,8 +235,8 @@ message EnumDescriptorProto { // is inclusive such that it can appropriately represent the entire int32 // domain. message EnumReservedRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Inclusive. + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Inclusive. } // Range of reserved numeric values. Reserved numeric values may not be used @@ -276,9 +277,9 @@ message MethodDescriptorProto { optional MethodOptions options = 4; // Identifies if client streams multiple client messages - optional bool client_streaming = 5 [default=false]; + optional bool client_streaming = 5 [default = false]; // Identifies if server streams multiple server messages - optional bool server_streaming = 6 [default=false]; + optional bool server_streaming = 6 [default = false]; } @@ -314,7 +315,6 @@ message MethodDescriptorProto { // If this turns out to be popular, a web service will be set up // to automatically assign option numbers. - message FileOptions { // Sets the Java package where classes generated from this .proto will be @@ -337,7 +337,7 @@ message FileOptions { // named by java_outer_classname. However, the outer class will still be // generated to contain the file's getDescriptor() method as well as any // top-level extensions defined in the file. - optional bool java_multiple_files = 10 [default=false]; + optional bool java_multiple_files = 10 [default = false]; // This option does nothing. optional bool java_generate_equals_and_hash = 20 [deprecated=true]; @@ -348,17 +348,17 @@ message FileOptions { // Message reflection will do the same. // However, an extension field still accepts non-UTF-8 byte sequences. // This option has no effect on when used with the lite runtime. - optional bool java_string_check_utf8 = 27 [default=false]; + optional bool java_string_check_utf8 = 27 [default = false]; // Generated classes can be optimized for speed or code size. enum OptimizeMode { - SPEED = 1; // Generate complete code for parsing, serialization, - // etc. - CODE_SIZE = 2; // Use ReflectionOps to implement these methods. - LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. } - optional OptimizeMode optimize_for = 9 [default=SPEED]; + optional OptimizeMode optimize_for = 9 [default = SPEED]; // Sets the Go package where structs generated from this .proto will be // placed. If omitted, the Go package will be derived from the following: @@ -369,6 +369,7 @@ message FileOptions { + // Should generic services be generated in each language? "Generic" services // are not specific to any particular RPC system. They are generated by the // main code generators in each language (without additional plugins). @@ -379,20 +380,20 @@ message FileOptions { // that generate code specific to your particular RPC system. Therefore, // these default to false. Old code which depends on generic services should // explicitly set them to true. - optional bool cc_generic_services = 16 [default=false]; - optional bool java_generic_services = 17 [default=false]; - optional bool py_generic_services = 18 [default=false]; - optional bool php_generic_services = 42 [default=false]; + optional bool cc_generic_services = 16 [default = false]; + optional bool java_generic_services = 17 [default = false]; + optional bool py_generic_services = 18 [default = false]; + optional bool php_generic_services = 42 [default = false]; // Is this file deprecated? // Depending on the target platform, this can emit Deprecated annotations // for everything in the file, or it will be completely ignored; in the very // least, this is a formalization for deprecating files. - optional bool deprecated = 23 [default=false]; + optional bool deprecated = 23 [default = false]; // Enables the use of arenas for the proto messages in this file. This applies // only to generated classes for C++. - optional bool cc_enable_arenas = 31 [default=false]; + optional bool cc_enable_arenas = 31 [default = false]; // Sets the objective c class prefix which is prepended to all objective c @@ -417,10 +418,9 @@ message FileOptions { // determining the namespace. optional string php_namespace = 41; - // Use this option to change the namespace of php generated metadata classes. - // Default is empty. When this option is empty, the proto file name will be used - // for determining the namespace. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. optional string php_metadata_namespace = 44; // Use this option to change the package of ruby generated classes. Default @@ -428,6 +428,7 @@ message FileOptions { // determining the ruby package. optional string ruby_package = 45; + // The parser stores options it doesn't recognize here. // See the documentation for the "Options" section above. repeated UninterpretedOption uninterpreted_option = 999; @@ -458,18 +459,18 @@ message MessageOptions { // // Because this is an option, the above two restrictions are not enforced by // the protocol compiler. - optional bool message_set_wire_format = 1 [default=false]; + optional bool message_set_wire_format = 1 [default = false]; // Disables the generation of the standard "descriptor()" accessor, which can // conflict with a field of the same name. This is meant to make migration // from proto1 easier; new code should avoid fields named "descriptor". - optional bool no_standard_descriptor_accessor = 2 [default=false]; + optional bool no_standard_descriptor_accessor = 2 [default = false]; // Is this message deprecated? // Depending on the target platform, this can emit Deprecated annotations // for the message, or it will be completely ignored; in the very least, // this is a formalization for deprecating messages. - optional bool deprecated = 3 [default=false]; + optional bool deprecated = 3 [default = false]; // Whether the message is an automatically generated map entry type for the // maps field. @@ -486,7 +487,7 @@ message MessageOptions { // // Implementations may choose not to generate the map_entry=true message, but // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementions still need to work as + // The reflection APIs in such implementations still need to work as // if the field is a repeated message field. // // NOTE: Do not set the option in .proto files. Always use the maps syntax @@ -497,6 +498,7 @@ message MessageOptions { reserved 8; // javalite_serializable reserved 9; // javanano_as_lite + // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -576,16 +578,16 @@ message FieldOptions { // implementation must either *always* check its required fields, or *never* // check its required fields, regardless of whether or not the message has // been parsed. - optional bool lazy = 5 [default=false]; + optional bool lazy = 5 [default = false]; // Is this field deprecated? // Depending on the target platform, this can emit Deprecated annotations // for accessors, or it will be completely ignored; in the very least, this // is a formalization for deprecating fields. - optional bool deprecated = 3 [default=false]; + optional bool deprecated = 3 [default = false]; // For Google-internal migration only. Do not use. - optional bool weak = 10 [default=false]; + optional bool weak = 10 [default = false]; // The parser stores options it doesn't recognize here. See above. @@ -615,7 +617,7 @@ message EnumOptions { // Depending on the target platform, this can emit Deprecated annotations // for the enum, or it will be completely ignored; in the very least, this // is a formalization for deprecating enums. - optional bool deprecated = 3 [default=false]; + optional bool deprecated = 3 [default = false]; reserved 5; // javanano_as_lite @@ -631,7 +633,7 @@ message EnumValueOptions { // Depending on the target platform, this can emit Deprecated annotations // for the enum value, or it will be completely ignored; in the very least, // this is a formalization for deprecating enum values. - optional bool deprecated = 1 [default=false]; + optional bool deprecated = 1 [default = false]; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -651,7 +653,7 @@ message ServiceOptions { // Depending on the target platform, this can emit Deprecated annotations // for the service, or it will be completely ignored; in the very least, // this is a formalization for deprecating services. - optional bool deprecated = 33 [default=false]; + optional bool deprecated = 33 [default = false]; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -671,18 +673,18 @@ message MethodOptions { // Depending on the target platform, this can emit Deprecated annotations // for the method, or it will be completely ignored; in the very least, // this is a formalization for deprecating methods. - optional bool deprecated = 33 [default=false]; + optional bool deprecated = 33 [default = false]; // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, // or neither? HTTP based RPC implementation may choose GET verb for safe // methods, and PUT verb for idempotent methods instead of the default POST. enum IdempotencyLevel { IDEMPOTENCY_UNKNOWN = 0; - NO_SIDE_EFFECTS = 1; // implies idempotent - IDEMPOTENT = 2; // idempotent, but may have side effects + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects } - optional IdempotencyLevel idempotency_level = - 34 [default=IDEMPOTENCY_UNKNOWN]; + optional IdempotencyLevel idempotency_level = 34 + [default = IDEMPOTENCY_UNKNOWN]; // The parser stores options it doesn't recognize here. See above. repeated UninterpretedOption uninterpreted_option = 999; @@ -763,7 +765,7 @@ message SourceCodeInfo { // beginning of the "extend" block and is shared by all extensions within // the block. // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendent. For example, a "group" defines + // does not mean that it is a descendant. For example, a "group" defines // both a type and a field in a single declaration. Thus, the locations // corresponding to the type and field and their components will overlap. // - Code which tries to interpret locations should probably be designed to @@ -794,14 +796,14 @@ message SourceCodeInfo { // [ 4, 3, 2, 7 ] // this path refers to the whole field declaration (from the beginning // of the label to the terminating semicolon). - repeated int32 path = 1 [packed=true]; + repeated int32 path = 1 [packed = true]; // Always has exactly three or four elements: start line, start column, // end line (optional, otherwise assumed same as start line), end column. // These are packed into a single field for efficiency. Note that line // and column numbers are zero-based -- typically you will want to add // 1 to each before displaying to a user. - repeated int32 span = 2 [packed=true]; + repeated int32 span = 2 [packed = true]; // If this SourceCodeInfo represents a complete declaration, these are any // comments appearing before and after the declaration which appear to be @@ -866,7 +868,7 @@ message GeneratedCodeInfo { message Annotation { // Identifies the element in the original source .proto file. This field // is formatted the same as SourceCodeInfo.Location.path. - repeated int32 path = 1 [packed=true]; + repeated int32 path = 1 [packed = true]; // Identifies the filesystem path to the original source .proto. optional string source_file = 2; diff --git a/protoc-gen-go/generator/generator.go b/protoc-gen-go/generator/generator.go index 81a37c7189..63b8ca0eed 100644 --- a/protoc-gen-go/generator/generator.go +++ b/protoc-gen-go/generator/generator.go @@ -2264,7 +2264,7 @@ func (g *Generator) generateMessage(message *Descriptor) { of := oneofField{ fieldCommon: fieldCommon{ goName: fname, - getterName: "Get"+fname, + getterName: "Get" + fname, goType: dname, tags: tag, protoName: odp.GetName(), @@ -2609,7 +2609,9 @@ func (g *Generator) generateFileDescriptor(file *FileDescriptor) { v := file.VarName() g.P() - g.P("func init() { ", g.Pkg["proto"], ".RegisterFile(", strconv.Quote(*file.Name), ", ", v, ") }") + g.P("func init() {") + g.P(g.Pkg["proto"], ".RegisterFile(", strconv.Quote(*file.Name), ", ", v, ")") + g.P("}") g.P("var ", v, " = []byte{") g.P("// ", len(b), " bytes of a gzipped FileDescriptorProto") for len(b) > 0 { diff --git a/protoc-gen-go/testdata/deprecated/deprecated.pb.go b/protoc-gen-go/testdata/deprecated/deprecated.pb.go index 55c8b836c2..eb7ee89b4e 100644 --- a/protoc-gen-go/testdata/deprecated/deprecated.pb.go +++ b/protoc-gen-go/testdata/deprecated/deprecated.pb.go @@ -168,7 +168,9 @@ func init() { proto.RegisterType((*DeprecatedResponse)(nil), "deprecated.DeprecatedResponse") } -func init() { proto.RegisterFile("deprecated/deprecated.proto", fileDescriptor_f64ba265cd7eae3f) } +func init() { + proto.RegisterFile("deprecated/deprecated.proto", fileDescriptor_f64ba265cd7eae3f) +} var fileDescriptor_f64ba265cd7eae3f = []byte{ // 287 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/grpc/grpc.pb.go b/protoc-gen-go/testdata/grpc/grpc.pb.go index e0209e1cd1..35c505bd19 100644 --- a/protoc-gen-go/testdata/grpc/grpc.pb.go +++ b/protoc-gen-go/testdata/grpc/grpc.pb.go @@ -155,7 +155,9 @@ func init() { proto.RegisterType((*StreamMsg2)(nil), "grpc.testing.StreamMsg2") } -func init() { proto.RegisterFile("grpc/grpc.proto", fileDescriptor_81ea47a3f88c2082) } +func init() { + proto.RegisterFile("grpc/grpc.proto", fileDescriptor_81ea47a3f88c2082) +} var fileDescriptor_81ea47a3f88c2082 = []byte{ // 244 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/grpc/grpc_empty.pb.go b/protoc-gen-go/testdata/grpc/grpc_empty.pb.go index 286f2e3dcf..9a2ab476ca 100644 --- a/protoc-gen-go/testdata/grpc/grpc_empty.pb.go +++ b/protoc-gen-go/testdata/grpc/grpc_empty.pb.go @@ -22,7 +22,9 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package -func init() { proto.RegisterFile("grpc/grpc_empty.proto", fileDescriptor_c580a37f1c90e9b1) } +func init() { + proto.RegisterFile("grpc/grpc_empty.proto", fileDescriptor_c580a37f1c90e9b1) +} var fileDescriptor_c580a37f1c90e9b1 = []byte{ // 125 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/import_public/a.pb.go b/protoc-gen-go/testdata/import_public/a.pb.go index fa511fcbef..e1e6d4b121 100644 --- a/protoc-gen-go/testdata/import_public/a.pb.go +++ b/protoc-gen-go/testdata/import_public/a.pb.go @@ -121,7 +121,9 @@ func init() { proto.RegisterType((*Public)(nil), "goproto.test.import_public.Public") } -func init() { proto.RegisterFile("import_public/a.proto", fileDescriptor_73b7577c95fa6b70) } +func init() { + proto.RegisterFile("import_public/a.proto", fileDescriptor_73b7577c95fa6b70) +} var fileDescriptor_73b7577c95fa6b70 = []byte{ // 195 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/import_public/b.pb.go b/protoc-gen-go/testdata/import_public/b.pb.go index 522f215ca2..79ce831a18 100644 --- a/protoc-gen-go/testdata/import_public/b.pb.go +++ b/protoc-gen-go/testdata/import_public/b.pb.go @@ -72,7 +72,9 @@ func init() { proto.RegisterType((*Local)(nil), "goproto.test.import_public.Local") } -func init() { proto.RegisterFile("import_public/b.proto", fileDescriptor_84995586b3d09710) } +func init() { + proto.RegisterFile("import_public/b.proto", fileDescriptor_84995586b3d09710) +} var fileDescriptor_84995586b3d09710 = []byte{ // 169 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/import_public/sub/a.pb.go b/protoc-gen-go/testdata/import_public/sub/a.pb.go index 6f815678ae..da9acbd5ba 100644 --- a/protoc-gen-go/testdata/import_public/sub/a.pb.go +++ b/protoc-gen-go/testdata/import_public/sub/a.pb.go @@ -376,7 +376,9 @@ func init() { proto.RegisterExtension(E_ExtensionField) } -func init() { proto.RegisterFile("import_public/sub/a.proto", fileDescriptor_382f7805394b5c4e) } +func init() { + proto.RegisterFile("import_public/sub/a.proto", fileDescriptor_382f7805394b5c4e) +} var fileDescriptor_382f7805394b5c4e = []byte{ // 410 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/import_public/sub/b.pb.go b/protoc-gen-go/testdata/import_public/sub/b.pb.go index cb4ea17e8c..704e391f25 100644 --- a/protoc-gen-go/testdata/import_public/sub/b.pb.go +++ b/protoc-gen-go/testdata/import_public/sub/b.pb.go @@ -64,7 +64,9 @@ func init() { proto.RegisterType((*M2)(nil), "goproto.test.import_public.sub.M2") } -func init() { proto.RegisterFile("import_public/sub/b.proto", fileDescriptor_fc66afda3d7c2232) } +func init() { + proto.RegisterFile("import_public/sub/b.proto", fileDescriptor_fc66afda3d7c2232) +} var fileDescriptor_fc66afda3d7c2232 = []byte{ // 132 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/fmt/m.pb.go b/protoc-gen-go/testdata/imports/fmt/m.pb.go index 9f774fe064..4ce907b0f2 100644 --- a/protoc-gen-go/testdata/imports/fmt/m.pb.go +++ b/protoc-gen-go/testdata/imports/fmt/m.pb.go @@ -55,7 +55,9 @@ func init() { proto.RegisterType((*M)(nil), "fmt.M") } -func init() { proto.RegisterFile("imports/fmt/m.proto", fileDescriptor_72c126fcd452e392) } +func init() { + proto.RegisterFile("imports/fmt/m.proto", fileDescriptor_72c126fcd452e392) +} var fileDescriptor_72c126fcd452e392 = []byte{ // 109 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/test_a_1/m1.pb.go b/protoc-gen-go/testdata/imports/test_a_1/m1.pb.go index 1cec006b9d..10185e2728 100644 --- a/protoc-gen-go/testdata/imports/test_a_1/m1.pb.go +++ b/protoc-gen-go/testdata/imports/test_a_1/m1.pb.go @@ -118,7 +118,9 @@ func init() { proto.RegisterType((*M1_1)(nil), "test.a.M1_1") } -func init() { proto.RegisterFile("imports/test_a_1/m1.proto", fileDescriptor_c1091de3fa870a14) } +func init() { + proto.RegisterFile("imports/test_a_1/m1.proto", fileDescriptor_c1091de3fa870a14) +} var fileDescriptor_c1091de3fa870a14 = []byte{ // 165 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/test_a_1/m2.pb.go b/protoc-gen-go/testdata/imports/test_a_1/m2.pb.go index 0563d580ca..21b474deb3 100644 --- a/protoc-gen-go/testdata/imports/test_a_1/m2.pb.go +++ b/protoc-gen-go/testdata/imports/test_a_1/m2.pb.go @@ -55,7 +55,9 @@ func init() { proto.RegisterType((*M2)(nil), "test.a.M2") } -func init() { proto.RegisterFile("imports/test_a_1/m2.proto", fileDescriptor_20cf27515c0d621c) } +func init() { + proto.RegisterFile("imports/test_a_1/m2.proto", fileDescriptor_20cf27515c0d621c) +} var fileDescriptor_20cf27515c0d621c = []byte{ // 114 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/test_a_2/m3.pb.go b/protoc-gen-go/testdata/imports/test_a_2/m3.pb.go index cbc8430b07..ec0d205762 100644 --- a/protoc-gen-go/testdata/imports/test_a_2/m3.pb.go +++ b/protoc-gen-go/testdata/imports/test_a_2/m3.pb.go @@ -55,7 +55,9 @@ func init() { proto.RegisterType((*M3)(nil), "test.a.M3") } -func init() { proto.RegisterFile("imports/test_a_2/m3.proto", fileDescriptor_ff9d8f834875c9c5) } +func init() { + proto.RegisterFile("imports/test_a_2/m3.proto", fileDescriptor_ff9d8f834875c9c5) +} var fileDescriptor_ff9d8f834875c9c5 = []byte{ // 114 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/test_a_2/m4.pb.go b/protoc-gen-go/testdata/imports/test_a_2/m4.pb.go index 2771b839aa..7dab0f31c0 100644 --- a/protoc-gen-go/testdata/imports/test_a_2/m4.pb.go +++ b/protoc-gen-go/testdata/imports/test_a_2/m4.pb.go @@ -55,7 +55,9 @@ func init() { proto.RegisterType((*M4)(nil), "test.a.M4") } -func init() { proto.RegisterFile("imports/test_a_2/m4.proto", fileDescriptor_fdd24f82f6c5a786) } +func init() { + proto.RegisterFile("imports/test_a_2/m4.proto", fileDescriptor_fdd24f82f6c5a786) +} var fileDescriptor_fdd24f82f6c5a786 = []byte{ // 114 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/test_b_1/m1.pb.go b/protoc-gen-go/testdata/imports/test_b_1/m1.pb.go index 51592e7264..0136078bf9 100644 --- a/protoc-gen-go/testdata/imports/test_b_1/m1.pb.go +++ b/protoc-gen-go/testdata/imports/test_b_1/m1.pb.go @@ -55,7 +55,9 @@ func init() { proto.RegisterType((*M1)(nil), "test.b.part1.M1") } -func init() { proto.RegisterFile("imports/test_b_1/m1.proto", fileDescriptor_7f49573d035512a8) } +func init() { + proto.RegisterFile("imports/test_b_1/m1.proto", fileDescriptor_7f49573d035512a8) +} var fileDescriptor_7f49573d035512a8 = []byte{ // 125 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/test_b_1/m2.pb.go b/protoc-gen-go/testdata/imports/test_b_1/m2.pb.go index f31fb0d273..3075509ce2 100644 --- a/protoc-gen-go/testdata/imports/test_b_1/m2.pb.go +++ b/protoc-gen-go/testdata/imports/test_b_1/m2.pb.go @@ -55,7 +55,9 @@ func init() { proto.RegisterType((*M2)(nil), "test.b.part2.M2") } -func init() { proto.RegisterFile("imports/test_b_1/m2.proto", fileDescriptor_a1becddceeb586f2) } +func init() { + proto.RegisterFile("imports/test_b_1/m2.proto", fileDescriptor_a1becddceeb586f2) +} var fileDescriptor_a1becddceeb586f2 = []byte{ // 125 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/test_import_a1m1.pb.go b/protoc-gen-go/testdata/imports/test_import_a1m1.pb.go index 1fef9ea30a..70245a41d5 100644 --- a/protoc-gen-go/testdata/imports/test_import_a1m1.pb.go +++ b/protoc-gen-go/testdata/imports/test_import_a1m1.pb.go @@ -64,7 +64,9 @@ func init() { proto.RegisterType((*A1M1)(nil), "test.A1M1") } -func init() { proto.RegisterFile("imports/test_import_a1m1.proto", fileDescriptor_3b904a47327455f3) } +func init() { + proto.RegisterFile("imports/test_import_a1m1.proto", fileDescriptor_3b904a47327455f3) +} var fileDescriptor_3b904a47327455f3 = []byte{ // 149 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/test_import_a1m2.pb.go b/protoc-gen-go/testdata/imports/test_import_a1m2.pb.go index 13d5dd6fb8..49e2058884 100644 --- a/protoc-gen-go/testdata/imports/test_import_a1m2.pb.go +++ b/protoc-gen-go/testdata/imports/test_import_a1m2.pb.go @@ -64,7 +64,9 @@ func init() { proto.RegisterType((*A1M2)(nil), "test.A1M2") } -func init() { proto.RegisterFile("imports/test_import_a1m2.proto", fileDescriptor_bdb27b114687957d) } +func init() { + proto.RegisterFile("imports/test_import_a1m2.proto", fileDescriptor_bdb27b114687957d) +} var fileDescriptor_bdb27b114687957d = []byte{ // 149 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/imports/test_import_all.pb.go b/protoc-gen-go/testdata/imports/test_import_all.pb.go index 467051708f..867da8fa29 100644 --- a/protoc-gen-go/testdata/imports/test_import_all.pb.go +++ b/protoc-gen-go/testdata/imports/test_import_all.pb.go @@ -115,7 +115,9 @@ func init() { proto.RegisterType((*All)(nil), "test.All") } -func init() { proto.RegisterFile("imports/test_import_all.proto", fileDescriptor_324466f0afc16f77) } +func init() { + proto.RegisterFile("imports/test_import_all.proto", fileDescriptor_324466f0afc16f77) +} var fileDescriptor_324466f0afc16f77 = []byte{ // 258 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go b/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go index c39404e1b2..e2f742a90b 100644 --- a/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go +++ b/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go @@ -89,7 +89,9 @@ func init() { proto.RegisterType((*Foo)(nil), "oneoftest.Foo") } -func init() { proto.RegisterFile("issue780_oneof_conflict/test.proto", fileDescriptor_48462cafc802a68e) } +func init() { + proto.RegisterFile("issue780_oneof_conflict/test.proto", fileDescriptor_48462cafc802a68e) +} var fileDescriptor_48462cafc802a68e = []byte{ // 107 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/multi/multi1.pb.go b/protoc-gen-go/testdata/multi/multi1.pb.go index 6ff8dd64bd..5676399e56 100644 --- a/protoc-gen-go/testdata/multi/multi1.pb.go +++ b/protoc-gen-go/testdata/multi/multi1.pb.go @@ -79,7 +79,9 @@ func init() { proto.RegisterType((*Multi1)(nil), "multitest.Multi1") } -func init() { proto.RegisterFile("multi/multi1.proto", fileDescriptor_e0bffc140cd1b1d9) } +func init() { + proto.RegisterFile("multi/multi1.proto", fileDescriptor_e0bffc140cd1b1d9) +} var fileDescriptor_e0bffc140cd1b1d9 = []byte{ // 200 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/multi/multi2.pb.go b/protoc-gen-go/testdata/multi/multi2.pb.go index 2eb07ad1a8..eef46158c4 100644 --- a/protoc-gen-go/testdata/multi/multi2.pb.go +++ b/protoc-gen-go/testdata/multi/multi2.pb.go @@ -115,7 +115,9 @@ func init() { proto.RegisterType((*Multi2)(nil), "multitest.Multi2") } -func init() { proto.RegisterFile("multi/multi2.proto", fileDescriptor_a2aebe588a0b2853) } +func init() { + proto.RegisterFile("multi/multi2.proto", fileDescriptor_a2aebe588a0b2853) +} var fileDescriptor_a2aebe588a0b2853 = []byte{ // 202 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/multi/multi3.pb.go b/protoc-gen-go/testdata/multi/multi3.pb.go index 9fb771f512..28ba1a9b5a 100644 --- a/protoc-gen-go/testdata/multi/multi3.pb.go +++ b/protoc-gen-go/testdata/multi/multi3.pb.go @@ -104,7 +104,9 @@ func init() { proto.RegisterType((*Multi3)(nil), "multitest.Multi3") } -func init() { proto.RegisterFile("multi/multi3.proto", fileDescriptor_580398fc0bbeeaa7) } +func init() { + proto.RegisterFile("multi/multi3.proto", fileDescriptor_580398fc0bbeeaa7) +} var fileDescriptor_580398fc0bbeeaa7 = []byte{ // 170 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/my_test/test.pb.go b/protoc-gen-go/testdata/my_test/test.pb.go index 92d456bdb3..7b49db0a27 100644 --- a/protoc-gen-go/testdata/my_test/test.pb.go +++ b/protoc-gen-go/testdata/my_test/test.pb.go @@ -1021,7 +1021,9 @@ func init() { proto.RegisterExtension(E_Donut) } -func init() { proto.RegisterFile("my_test/test.proto", fileDescriptor_2c9b60a40d5131b9) } +func init() { + proto.RegisterFile("my_test/test.proto", fileDescriptor_2c9b60a40d5131b9) +} var fileDescriptor_2c9b60a40d5131b9 = []byte{ // 1148 bytes of a gzipped FileDescriptorProto diff --git a/protoc-gen-go/testdata/proto3/proto3.pb.go b/protoc-gen-go/testdata/proto3/proto3.pb.go index a816962523..65398382bf 100644 --- a/protoc-gen-go/testdata/proto3/proto3.pb.go +++ b/protoc-gen-go/testdata/proto3/proto3.pb.go @@ -175,7 +175,9 @@ func init() { proto.RegisterType((*Book)(nil), "proto3.Book") } -func init() { proto.RegisterFile("proto3/proto3.proto", fileDescriptor_ab04eb4084a521db) } +func init() { + proto.RegisterFile("proto3/proto3.proto", fileDescriptor_ab04eb4084a521db) +} var fileDescriptor_ab04eb4084a521db = []byte{ // 306 bytes of a gzipped FileDescriptorProto diff --git a/ptypes/any/any.pb.go b/ptypes/any/any.pb.go index 78ee523349..7b0ad1ad86 100644 --- a/ptypes/any/any.pb.go +++ b/ptypes/any/any.pb.go @@ -102,7 +102,8 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // type Any struct { // A URL/resource name that uniquely identifies the type of the serialized - // protocol buffer message. The last segment of the URL's path must represent + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent // the fully qualified name of the type (as in // `path/google.protobuf.Duration`). The name should be in a canonical form // (e.g., leading "." is not accepted). @@ -181,7 +182,9 @@ func init() { proto.RegisterType((*Any)(nil), "google.protobuf.Any") } -func init() { proto.RegisterFile("google/protobuf/any.proto", fileDescriptor_b53526c13ae22eb4) } +func init() { + proto.RegisterFile("google/protobuf/any.proto", fileDescriptor_b53526c13ae22eb4) +} var fileDescriptor_b53526c13ae22eb4 = []byte{ // 185 bytes of a gzipped FileDescriptorProto diff --git a/ptypes/any/any.proto b/ptypes/any/any.proto index 4932942558..c9be854167 100644 --- a/ptypes/any/any.proto +++ b/ptypes/any/any.proto @@ -121,7 +121,8 @@ option objc_class_prefix = "GPB"; // message Any { // A URL/resource name that uniquely identifies the type of the serialized - // protocol buffer message. The last segment of the URL's path must represent + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent // the fully qualified name of the type (as in // `path/google.protobuf.Duration`). The name should be in a canonical form // (e.g., leading "." is not accepted). diff --git a/ptypes/duration/duration.pb.go b/ptypes/duration/duration.pb.go index 0d681ee21a..58b0786990 100644 --- a/ptypes/duration/duration.pb.go +++ b/ptypes/duration/duration.pb.go @@ -41,7 +41,7 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // if (duration.seconds < 0 && duration.nanos > 0) { // duration.seconds += 1; // duration.nanos -= 1000000000; -// } else if (durations.seconds > 0 && duration.nanos < 0) { +// } else if (duration.seconds > 0 && duration.nanos < 0) { // duration.seconds -= 1; // duration.nanos += 1000000000; // } @@ -142,7 +142,9 @@ func init() { proto.RegisterType((*Duration)(nil), "google.protobuf.Duration") } -func init() { proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor_23597b2ebd7ac6c5) } +func init() { + proto.RegisterFile("google/protobuf/duration.proto", fileDescriptor_23597b2ebd7ac6c5) +} var fileDescriptor_23597b2ebd7ac6c5 = []byte{ // 190 bytes of a gzipped FileDescriptorProto diff --git a/ptypes/duration/duration.proto b/ptypes/duration/duration.proto index 975fce41aa..99cb102c35 100644 --- a/ptypes/duration/duration.proto +++ b/ptypes/duration/duration.proto @@ -61,7 +61,7 @@ option objc_class_prefix = "GPB"; // if (duration.seconds < 0 && duration.nanos > 0) { // duration.seconds += 1; // duration.nanos -= 1000000000; -// } else if (durations.seconds > 0 && duration.nanos < 0) { +// } else if (duration.seconds > 0 && duration.nanos < 0) { // duration.seconds -= 1; // duration.nanos += 1000000000; // } @@ -101,7 +101,6 @@ option objc_class_prefix = "GPB"; // // message Duration { - // Signed seconds of the span of time. Must be from -315,576,000,000 // to +315,576,000,000 inclusive. Note: these bounds are computed from: // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years diff --git a/ptypes/empty/empty.pb.go b/ptypes/empty/empty.pb.go index b4eb03eccf..6bd9f67480 100644 --- a/ptypes/empty/empty.pb.go +++ b/ptypes/empty/empty.pb.go @@ -66,7 +66,9 @@ func init() { proto.RegisterType((*Empty)(nil), "google.protobuf.Empty") } -func init() { proto.RegisterFile("google/protobuf/empty.proto", fileDescriptor_900544acb223d5b8) } +func init() { + proto.RegisterFile("google/protobuf/empty.proto", fileDescriptor_900544acb223d5b8) +} var fileDescriptor_900544acb223d5b8 = []byte{ // 148 bytes of a gzipped FileDescriptorProto diff --git a/ptypes/struct/struct.pb.go b/ptypes/struct/struct.pb.go index 33daa73dd2..d82d6176b5 100644 --- a/ptypes/struct/struct.pb.go +++ b/ptypes/struct/struct.pb.go @@ -302,7 +302,9 @@ func init() { proto.RegisterType((*ListValue)(nil), "google.protobuf.ListValue") } -func init() { proto.RegisterFile("google/protobuf/struct.proto", fileDescriptor_df322afd6c9fb402) } +func init() { + proto.RegisterFile("google/protobuf/struct.proto", fileDescriptor_df322afd6c9fb402) +} var fileDescriptor_df322afd6c9fb402 = []byte{ // 417 bytes of a gzipped FileDescriptorProto diff --git a/ptypes/struct/struct.proto b/ptypes/struct/struct.proto index 7d7808e7fb..ed990e31d9 100644 --- a/ptypes/struct/struct.proto +++ b/ptypes/struct/struct.proto @@ -40,7 +40,6 @@ option java_outer_classname = "StructProto"; option java_multiple_files = true; option objc_class_prefix = "GPB"; - // `Struct` represents a structured data value, consisting of fields // which map to dynamically typed values. In some languages, `Struct` // might be supported by a native representation. For example, in diff --git a/ptypes/timestamp/timestamp.pb.go b/ptypes/timestamp/timestamp.pb.go index 31cd846de9..7a3b1e40e2 100644 --- a/ptypes/timestamp/timestamp.pb.go +++ b/ptypes/timestamp/timestamp.pb.go @@ -20,17 +20,19 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package -// A Timestamp represents a point in time independent of any time zone -// or calendar, represented as seconds and fractions of seconds at -// nanosecond resolution in UTC Epoch time. It is encoded using the -// Proleptic Gregorian Calendar which extends the Gregorian calendar -// backwards to year one. It is encoded assuming all minutes are 60 -// seconds long, i.e. leap seconds are "smeared" so that no leap second -// table is needed for interpretation. Range is from -// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. -// By restricting to that range, we ensure that we can convert to -// and from RFC 3339 date strings. -// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// A Timestamp represents a point in time independent of any time zone or local +// calendar, encoded as a count of seconds and fractions of seconds at +// nanosecond resolution. The count is relative to an epoch at UTC midnight on +// January 1, 1970, in the proleptic Gregorian calendar which extends the +// Gregorian calendar backwards to year one. +// +// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap +// second table is needed for interpretation, using a [24-hour linear +// smear](https://developers.google.com/time/smear). +// +// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By +// restricting to that range, we ensure that we can convert to and from [RFC +// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. // // # Examples // @@ -91,12 +93,14 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // 01:30 UTC on January 15, 2017. // // In JavaScript, one can convert a Date object to this format using the -// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// standard +// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) // method. In Python, a standard `datetime.datetime` object can be converted -// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) -// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one -// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( -// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime-- +// to this format using +// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with +// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use +// the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D // ) to obtain a formatter capable of generating timestamps in this format. // // @@ -160,7 +164,9 @@ func init() { proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp") } -func init() { proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_292007bbfe81227e) } +func init() { + proto.RegisterFile("google/protobuf/timestamp.proto", fileDescriptor_292007bbfe81227e) +} var fileDescriptor_292007bbfe81227e = []byte{ // 191 bytes of a gzipped FileDescriptorProto diff --git a/ptypes/timestamp/timestamp.proto b/ptypes/timestamp/timestamp.proto index eafb3fa03a..cd357864a9 100644 --- a/ptypes/timestamp/timestamp.proto +++ b/ptypes/timestamp/timestamp.proto @@ -40,17 +40,19 @@ option java_outer_classname = "TimestampProto"; option java_multiple_files = true; option objc_class_prefix = "GPB"; -// A Timestamp represents a point in time independent of any time zone -// or calendar, represented as seconds and fractions of seconds at -// nanosecond resolution in UTC Epoch time. It is encoded using the -// Proleptic Gregorian Calendar which extends the Gregorian calendar -// backwards to year one. It is encoded assuming all minutes are 60 -// seconds long, i.e. leap seconds are "smeared" so that no leap second -// table is needed for interpretation. Range is from -// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. -// By restricting to that range, we ensure that we can convert to -// and from RFC 3339 date strings. -// See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). +// A Timestamp represents a point in time independent of any time zone or local +// calendar, encoded as a count of seconds and fractions of seconds at +// nanosecond resolution. The count is relative to an epoch at UTC midnight on +// January 1, 1970, in the proleptic Gregorian calendar which extends the +// Gregorian calendar backwards to year one. +// +// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap +// second table is needed for interpretation, using a [24-hour linear +// smear](https://developers.google.com/time/smear). +// +// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By +// restricting to that range, we ensure that we can convert to and from [RFC +// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. // // # Examples // @@ -111,17 +113,18 @@ option objc_class_prefix = "GPB"; // 01:30 UTC on January 15, 2017. // // In JavaScript, one can convert a Date object to this format using the -// standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] +// standard +// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) // method. In Python, a standard `datetime.datetime` object can be converted -// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) -// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one -// can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( -// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime-- +// to this format using +// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with +// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use +// the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D // ) to obtain a formatter capable of generating timestamps in this format. // // message Timestamp { - // Represents seconds of UTC time since Unix epoch // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to // 9999-12-31T23:59:59Z inclusive. diff --git a/ptypes/wrappers/wrappers.pb.go b/ptypes/wrappers/wrappers.pb.go index add19a1adb..968ff318d1 100644 --- a/ptypes/wrappers/wrappers.pb.go +++ b/ptypes/wrappers/wrappers.pb.go @@ -437,7 +437,9 @@ func init() { proto.RegisterType((*BytesValue)(nil), "google.protobuf.BytesValue") } -func init() { proto.RegisterFile("google/protobuf/wrappers.proto", fileDescriptor_5377b62bda767935) } +func init() { + proto.RegisterFile("google/protobuf/wrappers.proto", fileDescriptor_5377b62bda767935) +} var fileDescriptor_5377b62bda767935 = []byte{ // 259 bytes of a gzipped FileDescriptorProto diff --git a/ptypes/wrappers/wrappers.proto b/ptypes/wrappers/wrappers.proto index 01947639ac..9ee41e384a 100644 --- a/ptypes/wrappers/wrappers.proto +++ b/ptypes/wrappers/wrappers.proto @@ -32,6 +32,11 @@ // for embedding primitives in the `google.protobuf.Any` type and for places // where we need to distinguish between the absence of a primitive // typed field and its default value. +// +// These wrappers have no meaningful use within repeated fields as they lack +// the ability to detect presence on individual elements. +// These wrappers have no meaningful use within a map or a oneof since +// individual entries of a map or fields of a oneof can already detect presence. syntax = "proto3";