Commit 86975301 authored by Jisi Liu's avatar Jisi Liu

Update csharp and php descriptor

parent 09354db1
...@@ -73,6 +73,16 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -73,6 +73,16 @@ namespace Google.Protobuf.WellKnownTypes {
/// any.Unpack(foo) /// any.Unpack(foo)
/// ... /// ...
/// ///
/// Example 4: Pack and unpack a message in Go
///
/// foo := &pb.Foo{...}
/// any, err := ptypes.MarshalAny(foo)
/// ...
/// foo := &pb.Foo{}
/// if err := ptypes.UnmarshalAny(any, foo); err != nil {
/// ...
/// }
///
/// The pack methods provided by protobuf library will by default use /// The pack methods provided by protobuf library will by default use
/// 'type.googleapis.com/full.type.name' as the type URL and the unpack /// 'type.googleapis.com/full.type.name' as the type URL and the unpack
/// methods only use the fully qualified type name after the last '/' /// methods only use the fully qualified type name after the last '/'
......
...@@ -52,7 +52,15 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -52,7 +52,15 @@ namespace Google.Protobuf.WellKnownTypes {
} }
#region Messages #region Messages
/// <summary> /// <summary>
/// Api is a light-weight descriptor for a protocol buffer service. /// Api is a light-weight descriptor for an API Interface.
///
/// Interfaces are also described as "protocol buffer services" in some contexts,
/// such as by the "service" keyword in a .proto file, but they are different
/// from API Services, which represent a concrete implementation of an interface
/// as opposed to simply a description of methods and bindings. They are also
/// sometimes simply referred to as "APIs" in other contexts, such as the name of
/// this message itself. See https://cloud.google.com/apis/design/glossary for
/// detailed terminology.
/// </summary> /// </summary>
public sealed partial class Api : pb::IMessage<Api> { public sealed partial class Api : pb::IMessage<Api> {
private static readonly pb::MessageParser<Api> _parser = new pb::MessageParser<Api>(() => new Api()); private static readonly pb::MessageParser<Api> _parser = new pb::MessageParser<Api>(() => new Api());
...@@ -96,8 +104,8 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -96,8 +104,8 @@ namespace Google.Protobuf.WellKnownTypes {
public const int NameFieldNumber = 1; public const int NameFieldNumber = 1;
private string name_ = ""; private string name_ = "";
/// <summary> /// <summary>
/// The fully qualified name of this api, including package name /// The fully qualified name of this interface, including package name
/// followed by the api's simple name. /// followed by the interface's simple name.
/// </summary> /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string Name { public string Name {
...@@ -113,7 +121,7 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -113,7 +121,7 @@ namespace Google.Protobuf.WellKnownTypes {
= pb::FieldCodec.ForMessage(18, global::Google.Protobuf.WellKnownTypes.Method.Parser); = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.WellKnownTypes.Method.Parser);
private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Method> methods_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Method>(); private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Method> methods_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Method>();
/// <summary> /// <summary>
/// The methods of this api, in unspecified order. /// The methods of this interface, in unspecified order.
/// </summary> /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Method> Methods { public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Method> Methods {
...@@ -126,7 +134,7 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -126,7 +134,7 @@ namespace Google.Protobuf.WellKnownTypes {
= pb::FieldCodec.ForMessage(26, global::Google.Protobuf.WellKnownTypes.Option.Parser); = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.WellKnownTypes.Option.Parser);
private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> options_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option>(); private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> options_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option>();
/// <summary> /// <summary>
/// Any metadata attached to the API. /// Any metadata attached to the interface.
/// </summary> /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> Options { public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Option> Options {
...@@ -137,13 +145,12 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -137,13 +145,12 @@ namespace Google.Protobuf.WellKnownTypes {
public const int VersionFieldNumber = 4; public const int VersionFieldNumber = 4;
private string version_ = ""; private string version_ = "";
/// <summary> /// <summary>
/// A version string for this api. If specified, must have the form /// A version string for this interface. If specified, must have the form
/// `major-version.minor-version`, as in `1.10`. If the minor version /// `major-version.minor-version`, as in `1.10`. If the minor version is
/// is omitted, it defaults to zero. If the entire version field is /// omitted, it defaults to zero. If the entire version field is empty, the
/// empty, the major version is derived from the package name, as /// major version is derived from the package name, as outlined below. If the
/// outlined below. If the field is not empty, the version in the /// field is not empty, the version in the package name will be verified to be
/// package name will be verified to be consistent with what is /// consistent with what is provided here.
/// provided here.
/// ///
/// The versioning schema uses [semantic /// The versioning schema uses [semantic
/// versioning](http://semver.org) where the major version number /// versioning](http://semver.org) where the major version number
...@@ -153,10 +160,10 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -153,10 +160,10 @@ namespace Google.Protobuf.WellKnownTypes {
/// chosen based on the product plan. /// chosen based on the product plan.
/// ///
/// The major version is also reflected in the package name of the /// The major version is also reflected in the package name of the
/// API, which must end in `v&lt;major-version>`, as in /// interface, which must end in `v&lt;major-version>`, as in
/// `google.feature.v1`. For major versions 0 and 1, the suffix can /// `google.feature.v1`. For major versions 0 and 1, the suffix can
/// be omitted. Zero major versions must only be used for /// be omitted. Zero major versions must only be used for
/// experimental, none-GA apis. /// experimental, non-GA interfaces.
/// </summary> /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string Version { public string Version {
...@@ -187,7 +194,7 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -187,7 +194,7 @@ namespace Google.Protobuf.WellKnownTypes {
= pb::FieldCodec.ForMessage(50, global::Google.Protobuf.WellKnownTypes.Mixin.Parser); = pb::FieldCodec.ForMessage(50, global::Google.Protobuf.WellKnownTypes.Mixin.Parser);
private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Mixin> mixins_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Mixin>(); private readonly pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Mixin> mixins_ = new pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Mixin>();
/// <summary> /// <summary>
/// Included APIs. See [Mixin][]. /// Included interfaces. See [Mixin][].
/// </summary> /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Mixin> Mixins { public pbc::RepeatedField<global::Google.Protobuf.WellKnownTypes.Mixin> Mixins {
...@@ -364,7 +371,7 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -364,7 +371,7 @@ namespace Google.Protobuf.WellKnownTypes {
} }
/// <summary> /// <summary>
/// Method represents a method of an api. /// Method represents a method of an API interface.
/// </summary> /// </summary>
public sealed partial class Method : pb::IMessage<Method> { public sealed partial class Method : pb::IMessage<Method> {
private static readonly pb::MessageParser<Method> _parser = new pb::MessageParser<Method>(() => new Method()); private static readonly pb::MessageParser<Method> _parser = new pb::MessageParser<Method>(() => new Method());
...@@ -665,9 +672,9 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -665,9 +672,9 @@ namespace Google.Protobuf.WellKnownTypes {
} }
/// <summary> /// <summary>
/// Declares an API to be included in this API. The including API must /// Declares an API Interface to be included in this interface. The including
/// redeclare all the methods from the included API, but documentation /// interface must redeclare all the methods from the included interface, but
/// and options are inherited as follows: /// documentation and options are inherited as follows:
/// ///
/// - If after comment and whitespace stripping, the documentation /// - If after comment and whitespace stripping, the documentation
/// string of the redeclared method is empty, it will be inherited /// string of the redeclared method is empty, it will be inherited
...@@ -679,7 +686,8 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -679,7 +686,8 @@ namespace Google.Protobuf.WellKnownTypes {
/// ///
/// - If an http annotation is inherited, the path pattern will be /// - If an http annotation is inherited, the path pattern will be
/// modified as follows. Any version prefix will be replaced by the /// modified as follows. Any version prefix will be replaced by the
/// version of the including API plus the [root][] path if specified. /// version of the including interface plus the [root][] path if
/// specified.
/// ///
/// Example of a simple mixin: /// Example of a simple mixin:
/// ///
...@@ -780,7 +788,7 @@ namespace Google.Protobuf.WellKnownTypes { ...@@ -780,7 +788,7 @@ namespace Google.Protobuf.WellKnownTypes {
public const int NameFieldNumber = 1; public const int NameFieldNumber = 1;
private string name_ = ""; private string name_ = "";
/// <summary> /// <summary>
/// The fully qualified name of the API which is included. /// The fully qualified name of the interface which is included.
/// </summary> /// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string Name { public string Name {
......
...@@ -87,6 +87,16 @@ typedef GPB_ENUM(GPBAny_FieldNumber) { ...@@ -87,6 +87,16 @@ typedef GPB_ENUM(GPBAny_FieldNumber) {
* any.Unpack(foo) * any.Unpack(foo)
* ... * ...
* *
* Example 4: Pack and unpack a message in Go
*
* foo := &pb.Foo{...}
* any, err := ptypes.MarshalAny(foo)
* ...
* foo := &pb.Foo{}
* if err := ptypes.UnmarshalAny(any, foo); err != nil {
* ...
* }
*
* The pack methods provided by protobuf library will by default use * The pack methods provided by protobuf library will by default use
* 'type.googleapis.com/full.type.name' as the type URL and the unpack * 'type.googleapis.com/full.type.name' as the type URL and the unpack
* methods only use the fully qualified type name after the last '/' * methods only use the fully qualified type name after the last '/'
......
...@@ -63,34 +63,41 @@ typedef GPB_ENUM(GPBApi_FieldNumber) { ...@@ -63,34 +63,41 @@ typedef GPB_ENUM(GPBApi_FieldNumber) {
}; };
/** /**
* Api is a light-weight descriptor for a protocol buffer service. * Api is a light-weight descriptor for an API Interface.
*
* Interfaces are also described as "protocol buffer services" in some contexts,
* such as by the "service" keyword in a .proto file, but they are different
* from API Services, which represent a concrete implementation of an interface
* as opposed to simply a description of methods and bindings. They are also
* sometimes simply referred to as "APIs" in other contexts, such as the name of
* this message itself. See https://cloud.google.com/apis/design/glossary for
* detailed terminology.
**/ **/
@interface GPBApi : GPBMessage @interface GPBApi : GPBMessage
/** /**
* The fully qualified name of this api, including package name * The fully qualified name of this interface, including package name
* followed by the api's simple name. * followed by the interface's simple name.
**/ **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *name; @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/** The methods of this api, in unspecified order. */ /** The methods of this interface, in unspecified order. */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMethod*> *methodsArray; @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMethod*> *methodsArray;
/** The number of items in @c methodsArray without causing the array to be created. */ /** The number of items in @c methodsArray without causing the array to be created. */
@property(nonatomic, readonly) NSUInteger methodsArray_Count; @property(nonatomic, readonly) NSUInteger methodsArray_Count;
/** Any metadata attached to the API. */ /** Any metadata attached to the interface. */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray; @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBOption*> *optionsArray;
/** The number of items in @c optionsArray without causing the array to be created. */ /** The number of items in @c optionsArray without causing the array to be created. */
@property(nonatomic, readonly) NSUInteger optionsArray_Count; @property(nonatomic, readonly) NSUInteger optionsArray_Count;
/** /**
* A version string for this api. If specified, must have the form * A version string for this interface. If specified, must have the form
* `major-version.minor-version`, as in `1.10`. If the minor version * `major-version.minor-version`, as in `1.10`. If the minor version is
* is omitted, it defaults to zero. If the entire version field is * omitted, it defaults to zero. If the entire version field is empty, the
* empty, the major version is derived from the package name, as * major version is derived from the package name, as outlined below. If the
* outlined below. If the field is not empty, the version in the * field is not empty, the version in the package name will be verified to be
* package name will be verified to be consistent with what is * consistent with what is provided here.
* provided here.
* *
* The versioning schema uses [semantic * The versioning schema uses [semantic
* versioning](http://semver.org) where the major version number * versioning](http://semver.org) where the major version number
...@@ -100,10 +107,10 @@ typedef GPB_ENUM(GPBApi_FieldNumber) { ...@@ -100,10 +107,10 @@ typedef GPB_ENUM(GPBApi_FieldNumber) {
* chosen based on the product plan. * chosen based on the product plan.
* *
* The major version is also reflected in the package name of the * The major version is also reflected in the package name of the
* API, which must end in `v<major-version>`, as in * interface, which must end in `v<major-version>`, as in
* `google.feature.v1`. For major versions 0 and 1, the suffix can * `google.feature.v1`. For major versions 0 and 1, the suffix can
* be omitted. Zero major versions must only be used for * be omitted. Zero major versions must only be used for
* experimental, none-GA apis. * experimental, non-GA interfaces.
**/ **/
@property(nonatomic, readwrite, copy, null_resettable) NSString *version; @property(nonatomic, readwrite, copy, null_resettable) NSString *version;
...@@ -115,7 +122,7 @@ typedef GPB_ENUM(GPBApi_FieldNumber) { ...@@ -115,7 +122,7 @@ typedef GPB_ENUM(GPBApi_FieldNumber) {
/** Test to see if @c sourceContext has been set. */ /** Test to see if @c sourceContext has been set. */
@property(nonatomic, readwrite) BOOL hasSourceContext; @property(nonatomic, readwrite) BOOL hasSourceContext;
/** Included APIs. See [Mixin][]. */ /** Included interfaces. See [Mixin][]. */
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMixin*> *mixinsArray; @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GPBMixin*> *mixinsArray;
/** The number of items in @c mixinsArray without causing the array to be created. */ /** The number of items in @c mixinsArray without causing the array to be created. */
@property(nonatomic, readonly) NSUInteger mixinsArray_Count; @property(nonatomic, readonly) NSUInteger mixinsArray_Count;
...@@ -150,7 +157,7 @@ typedef GPB_ENUM(GPBMethod_FieldNumber) { ...@@ -150,7 +157,7 @@ typedef GPB_ENUM(GPBMethod_FieldNumber) {
}; };
/** /**
* Method represents a method of an api. * Method represents a method of an API interface.
**/ **/
@interface GPBMethod : GPBMessage @interface GPBMethod : GPBMessage
...@@ -199,9 +206,9 @@ typedef GPB_ENUM(GPBMixin_FieldNumber) { ...@@ -199,9 +206,9 @@ typedef GPB_ENUM(GPBMixin_FieldNumber) {
}; };
/** /**
* Declares an API to be included in this API. The including API must * Declares an API Interface to be included in this interface. The including
* redeclare all the methods from the included API, but documentation * interface must redeclare all the methods from the included interface, but
* and options are inherited as follows: * documentation and options are inherited as follows:
* *
* - If after comment and whitespace stripping, the documentation * - If after comment and whitespace stripping, the documentation
* string of the redeclared method is empty, it will be inherited * string of the redeclared method is empty, it will be inherited
...@@ -213,7 +220,8 @@ typedef GPB_ENUM(GPBMixin_FieldNumber) { ...@@ -213,7 +220,8 @@ typedef GPB_ENUM(GPBMixin_FieldNumber) {
* *
* - If an http annotation is inherited, the path pattern will be * - If an http annotation is inherited, the path pattern will be
* modified as follows. Any version prefix will be replaced by the * modified as follows. Any version prefix will be replaced by the
* version of the including API plus the [root][] path if specified. * version of the including interface plus the [root][] path if
* specified.
* *
* Example of a simple mixin: * Example of a simple mixin:
* *
...@@ -279,7 +287,7 @@ typedef GPB_ENUM(GPBMixin_FieldNumber) { ...@@ -279,7 +287,7 @@ typedef GPB_ENUM(GPBMixin_FieldNumber) {
**/ **/
@interface GPBMixin : GPBMessage @interface GPBMixin : GPBMessage
/** The fully qualified name of the API which is included. */ /** The fully qualified name of the interface which is included. */
@property(nonatomic, readwrite, copy, null_resettable) NSString *name; @property(nonatomic, readwrite, copy, null_resettable) NSString *name;
/** /**
......
...@@ -49,6 +49,7 @@ class Descriptor ...@@ -49,6 +49,7 @@ class Descriptor
$pool->addMessage('google.protobuf.internal.DescriptorProto.ExtensionRange', \Google\Protobuf\Internal\DescriptorProto_ExtensionRange::class) $pool->addMessage('google.protobuf.internal.DescriptorProto.ExtensionRange', \Google\Protobuf\Internal\DescriptorProto_ExtensionRange::class)
->optional('start', \Google\Protobuf\Internal\GPBType::INT32, 1) ->optional('start', \Google\Protobuf\Internal\GPBType::INT32, 1)
->optional('end', \Google\Protobuf\Internal\GPBType::INT32, 2) ->optional('end', \Google\Protobuf\Internal\GPBType::INT32, 2)
->optional('options', \Google\Protobuf\Internal\GPBType::MESSAGE, 3, 'google.protobuf.internal.ExtensionRangeOptions')
->finalizeToPool(); ->finalizeToPool();
$pool->addMessage('google.protobuf.internal.DescriptorProto.ReservedRange', \Google\Protobuf\Internal\DescriptorProto_ReservedRange::class) $pool->addMessage('google.protobuf.internal.DescriptorProto.ReservedRange', \Google\Protobuf\Internal\DescriptorProto_ReservedRange::class)
...@@ -56,6 +57,10 @@ class Descriptor ...@@ -56,6 +57,10 @@ class Descriptor
->optional('end', \Google\Protobuf\Internal\GPBType::INT32, 2) ->optional('end', \Google\Protobuf\Internal\GPBType::INT32, 2)
->finalizeToPool(); ->finalizeToPool();
$pool->addMessage('google.protobuf.internal.ExtensionRangeOptions', \Google\Protobuf\Internal\ExtensionRangeOptions::class)
->repeated('uninterpreted_option', \Google\Protobuf\Internal\GPBType::MESSAGE, 999, 'google.protobuf.internal.UninterpretedOption')
->finalizeToPool();
$pool->addMessage('google.protobuf.internal.FieldDescriptorProto', \Google\Protobuf\Internal\FieldDescriptorProto::class) $pool->addMessage('google.protobuf.internal.FieldDescriptorProto', \Google\Protobuf\Internal\FieldDescriptorProto::class)
->optional('name', \Google\Protobuf\Internal\GPBType::STRING, 1) ->optional('name', \Google\Protobuf\Internal\GPBType::STRING, 1)
->optional('number', \Google\Protobuf\Internal\GPBType::INT32, 3) ->optional('number', \Google\Protobuf\Internal\GPBType::INT32, 3)
......
...@@ -26,6 +26,11 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message ...@@ -26,6 +26,11 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message
*/ */
private $end = 0; private $end = 0;
private $has_end = false; private $has_end = false;
/**
* <code>optional .google.protobuf.ExtensionRangeOptions options = 3;</code>
*/
private $options = null;
private $has_options = false;
public function __construct() { public function __construct() {
\GPBMetadata\Google\Protobuf\Internal\Descriptor::initOnce(); \GPBMetadata\Google\Protobuf\Internal\Descriptor::initOnce();
...@@ -78,5 +83,28 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message ...@@ -78,5 +83,28 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message
return $this->has_end; return $this->has_end;
} }
/**
* <code>optional .google.protobuf.ExtensionRangeOptions options = 3;</code>
*/
public function getOptions()
{
return $this->options;
}
/**
* <code>optional .google.protobuf.ExtensionRangeOptions options = 3;</code>
*/
public function setOptions(&$var)
{
GPBUtil::checkMessage($var, \Google\Protobuf\Internal\ExtensionRangeOptions::class);
$this->options = $var;
$this->has_options = true;
}
public function hasOptions()
{
return $this->has_options;
}
} }
...@@ -45,13 +45,14 @@ class FieldOptions extends \Google\Protobuf\Internal\Message ...@@ -45,13 +45,14 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
* <pre> * <pre>
* The jstype option determines the JavaScript type used for values of the * The jstype option determines the JavaScript type used for values of the
* field. The option is permitted only for 64 bit integral and fixed types * field. The option is permitted only for 64 bit integral and fixed types
* (int64, uint64, sint64, fixed64, sfixed64). By default these types are * (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
* represented as JavaScript strings. This avoids loss of precision that can * is represented as JavaScript string, which avoids loss of precision that
* happen when a large value is converted to a floating point JavaScript * can happen when a large value is converted to a floating point JavaScript.
* numbers. Specifying JS_NUMBER for the jstype causes the generated * Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
* JavaScript code to use the JavaScript "number" type instead of strings. * use the JavaScript "number" type. The behavior of the default option
* This option is an enum to permit additional types to be added, * JS_NORMAL is implementation dependent.
* e.g. goog.math.Integer. * This option is an enum to permit additional types to be added, e.g.
* goog.math.Integer.
* </pre> * </pre>
* *
* <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code> * <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code>
...@@ -206,13 +207,14 @@ class FieldOptions extends \Google\Protobuf\Internal\Message ...@@ -206,13 +207,14 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
* <pre> * <pre>
* The jstype option determines the JavaScript type used for values of the * The jstype option determines the JavaScript type used for values of the
* field. The option is permitted only for 64 bit integral and fixed types * field. The option is permitted only for 64 bit integral and fixed types
* (int64, uint64, sint64, fixed64, sfixed64). By default these types are * (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
* represented as JavaScript strings. This avoids loss of precision that can * is represented as JavaScript string, which avoids loss of precision that
* happen when a large value is converted to a floating point JavaScript * can happen when a large value is converted to a floating point JavaScript.
* numbers. Specifying JS_NUMBER for the jstype causes the generated * Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
* JavaScript code to use the JavaScript "number" type instead of strings. * use the JavaScript "number" type. The behavior of the default option
* This option is an enum to permit additional types to be added, * JS_NORMAL is implementation dependent.
* e.g. goog.math.Integer. * This option is an enum to permit additional types to be added, e.g.
* goog.math.Integer.
* </pre> * </pre>
* *
* <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code> * <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code>
...@@ -226,13 +228,14 @@ class FieldOptions extends \Google\Protobuf\Internal\Message ...@@ -226,13 +228,14 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
* <pre> * <pre>
* The jstype option determines the JavaScript type used for values of the * The jstype option determines the JavaScript type used for values of the
* field. The option is permitted only for 64 bit integral and fixed types * field. The option is permitted only for 64 bit integral and fixed types
* (int64, uint64, sint64, fixed64, sfixed64). By default these types are * (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING
* represented as JavaScript strings. This avoids loss of precision that can * is represented as JavaScript string, which avoids loss of precision that
* happen when a large value is converted to a floating point JavaScript * can happen when a large value is converted to a floating point JavaScript.
* numbers. Specifying JS_NUMBER for the jstype causes the generated * Specifying JS_NUMBER for the jstype causes the generated JavaScript code to
* JavaScript code to use the JavaScript "number" type instead of strings. * use the JavaScript "number" type. The behavior of the default option
* This option is an enum to permit additional types to be added, * JS_NORMAL is implementation dependent.
* e.g. goog.math.Integer. * This option is an enum to permit additional types to be added, e.g.
* goog.math.Integer.
* </pre> * </pre>
* *
* <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code> * <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment