aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/type.proto
diff options
context:
space:
mode:
authorGravatar Jisi Liu <jisi.liu@gmail.com>2015-08-21 11:18:45 -0700
committerGravatar Jisi Liu <jisi.liu@gmail.com>2015-08-21 11:18:45 -0700
commitb0f661181d10bddc08e380992590a1cdd92be92b (patch)
treed9291cf324a72206ae3e474fe49186e8c96b2a9e /src/google/protobuf/type.proto
parentd119a275495b7dcc9c389c9c650ebd83de265511 (diff)
Down-integrate from internal branch.
Change-Id: Ieb7a2c2fbf35bc2a8fa65b915a5ecb68c83863e4
Diffstat (limited to 'src/google/protobuf/type.proto')
-rw-r--r--src/google/protobuf/type.proto102
1 files changed, 40 insertions, 62 deletions
diff --git a/src/google/protobuf/type.proto b/src/google/protobuf/type.proto
index ace5d995..d6b01825 100644
--- a/src/google/protobuf/type.proto
+++ b/src/google/protobuf/type.proto
@@ -34,29 +34,26 @@ package google.protobuf;
import "google/protobuf/any.proto";
import "google/protobuf/source_context.proto";
-option java_multiple_files = true;
-option java_outer_classname = "TypeProto";
option java_package = "com.google.protobuf";
+option java_outer_classname = "TypeProto";
+option java_multiple_files = true;
+option java_generate_equals_and_hash = true;
option objc_class_prefix = "GPB";
-
// A light-weight descriptor for a proto message type.
message Type {
// The fully qualified message name.
string name = 1;
-
// The list of fields.
repeated Field fields = 2;
-
// The list of oneof definitions.
- // The list of oneofs declared in this Type
- repeated string oneofs = 3;
-
+ repeated string oneofs = 3; // The list of oneofs declared in this Type
// The proto options.
repeated Option options = 4;
-
// The source context.
SourceContext source_context = 5;
+ // The source syntax.
+ Syntax syntax = 6;
}
// Field represents a single field of a message type.
@@ -64,125 +61,99 @@ message Field {
// Kind represents a basic field type.
enum Kind {
// Field type unknown.
- TYPE_UNKNOWN = 0;
-
+ TYPE_UNKNOWN = 0;
// Field type double.
- TYPE_DOUBLE = 1;
-
+ TYPE_DOUBLE = 1;
// Field type float.
- TYPE_FLOAT = 2;
-
+ TYPE_FLOAT = 2;
// Field type int64.
- TYPE_INT64 = 3;
-
+ TYPE_INT64 = 3;
// Field type uint64.
- TYPE_UINT64 = 4;
-
+ TYPE_UINT64 = 4;
// Field type int32.
- TYPE_INT32 = 5;
-
+ TYPE_INT32 = 5;
// Field type fixed64.
- TYPE_FIXED64 = 6;
-
+ TYPE_FIXED64 = 6;
// Field type fixed32.
- TYPE_FIXED32 = 7;
-
+ TYPE_FIXED32 = 7;
// Field type bool.
- TYPE_BOOL = 8;
-
+ TYPE_BOOL = 8;
// Field type string.
- TYPE_STRING = 9;
-
+ TYPE_STRING = 9;
+ // Field type group (deprecated proto2 type)
+ TYPE_GROUP = 10;
// Field type message.
- TYPE_MESSAGE = 11;
-
+ TYPE_MESSAGE = 11;
// Field type bytes.
- TYPE_BYTES = 12;
-
+ TYPE_BYTES = 12;
// Field type uint32.
- TYPE_UINT32 = 13;
-
+ TYPE_UINT32 = 13;
// Field type enum.
- TYPE_ENUM = 14;
-
+ TYPE_ENUM = 14;
// Field type sfixed32.
- TYPE_SFIXED32 = 15;
-
+ TYPE_SFIXED32 = 15;
// Field type sfixed64.
- TYPE_SFIXED64 = 16;
-
+ TYPE_SFIXED64 = 16;
// Field type sint32.
- TYPE_SINT32 = 17;
-
+ TYPE_SINT32 = 17;
// Field type sint64.
- TYPE_SINT64 = 18;
- }
+ TYPE_SINT64 = 18;
+ };
// Cardinality represents whether a field is optional, required, or
// repeated.
enum Cardinality {
// The field cardinality is unknown. Typically an error condition.
CARDINALITY_UNKNOWN = 0;
-
// For optional fields.
CARDINALITY_OPTIONAL = 1;
-
// For required fields. Not used for proto3.
CARDINALITY_REQUIRED = 2;
-
// For repeated fields.
CARDINALITY_REPEATED = 3;
- }
+ };
// The field kind.
Kind kind = 1;
-
// The field cardinality, i.e. optional/required/repeated.
Cardinality cardinality = 2;
-
// The proto field number.
int32 number = 3;
-
// The field name.
string name = 4;
-
// The type URL (without the scheme) when the type is MESSAGE or ENUM,
// such as `type.googleapis.com/google.protobuf.Empty`.
string type_url = 6;
-
// Index in Type.oneofs. Starts at 1. Zero means no oneof mapping.
int32 oneof_index = 7;
-
// Whether to use alternative packed wire representation.
bool packed = 8;
-
// The proto options.
repeated Option options = 9;
+ // The JSON name for this field.
+ string json_name = 10;
}
// Enum type definition.
message Enum {
// Enum type name.
string name = 1;
-
// Enum value definitions.
repeated EnumValue enumvalue = 2;
-
// Proto options for the enum type.
repeated Option options = 3;
-
// The source context.
SourceContext source_context = 4;
+ // The source syntax.
+ Syntax syntax = 5;
}
// Enum value definition.
message EnumValue {
// Enum value name.
string name = 1;
-
// Enum value number.
int32 number = 2;
-
// Proto options for the enum value.
repeated Option options = 3;
}
@@ -191,7 +162,14 @@ message EnumValue {
message Option {
// Proto option name.
string name = 1;
-
// Proto option value.
Any value = 2;
}
+
+// Syntax specifies the syntax in which a service element was defined.
+enum Syntax {
+ // Syntax "proto2"
+ SYNTAX_PROTO2 = 0;
+ // Syntax "proto3"
+ SYNTAX_PROTO3 = 1;
+}