...

Source file src/google.golang.org/protobuf/types/known/structpb/struct.pb.go

Documentation: google.golang.org/protobuf/types/known/structpb

     1  // Protocol Buffers - Google's data interchange format
     2  // Copyright 2008 Google Inc.  All rights reserved.
     3  // https://developers.google.com/protocol-buffers/
     4  //
     5  // Redistribution and use in source and binary forms, with or without
     6  // modification, are permitted provided that the following conditions are
     7  // met:
     8  //
     9  //     * Redistributions of source code must retain the above copyright
    10  // notice, this list of conditions and the following disclaimer.
    11  //     * Redistributions in binary form must reproduce the above
    12  // copyright notice, this list of conditions and the following disclaimer
    13  // in the documentation and/or other materials provided with the
    14  // distribution.
    15  //     * Neither the name of Google Inc. nor the names of its
    16  // contributors may be used to endorse or promote products derived from
    17  // this software without specific prior written permission.
    18  //
    19  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    20  // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    21  // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    22  // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    23  // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    24  // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    25  // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    26  // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    27  // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    28  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    29  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    30  
    31  // Code generated by protoc-gen-go. DO NOT EDIT.
    32  // source: google/protobuf/struct.proto
    33  
    34  // Package structpb contains generated types for google/protobuf/struct.proto.
    35  //
    36  // The messages (i.e., Value, Struct, and ListValue) defined in struct.proto are
    37  // used to represent arbitrary JSON. The Value message represents a JSON value,
    38  // the Struct message represents a JSON object, and the ListValue message
    39  // represents a JSON array. See https://json.org for more information.
    40  //
    41  // The Value, Struct, and ListValue types have generated MarshalJSON and
    42  // UnmarshalJSON methods such that they serialize JSON equivalent to what the
    43  // messages themselves represent. Use of these types with the
    44  // "google.golang.org/protobuf/encoding/protojson" package
    45  // ensures that they will be serialized as their JSON equivalent.
    46  //
    47  // # Conversion to and from a Go interface
    48  //
    49  // The standard Go "encoding/json" package has functionality to serialize
    50  // arbitrary types to a large degree. The Value.AsInterface, Struct.AsMap, and
    51  // ListValue.AsSlice methods can convert the protobuf message representation into
    52  // a form represented by interface{}, map[string]interface{}, and []interface{}.
    53  // This form can be used with other packages that operate on such data structures
    54  // and also directly with the standard json package.
    55  //
    56  // In order to convert the interface{}, map[string]interface{}, and []interface{}
    57  // forms back as Value, Struct, and ListValue messages, use the NewStruct,
    58  // NewList, and NewValue constructor functions.
    59  //
    60  // # Example usage
    61  //
    62  // Consider the following example JSON object:
    63  //
    64  //	{
    65  //		"firstName": "John",
    66  //		"lastName": "Smith",
    67  //		"isAlive": true,
    68  //		"age": 27,
    69  //		"address": {
    70  //			"streetAddress": "21 2nd Street",
    71  //			"city": "New York",
    72  //			"state": "NY",
    73  //			"postalCode": "10021-3100"
    74  //		},
    75  //		"phoneNumbers": [
    76  //			{
    77  //				"type": "home",
    78  //				"number": "212 555-1234"
    79  //			},
    80  //			{
    81  //				"type": "office",
    82  //				"number": "646 555-4567"
    83  //			}
    84  //		],
    85  //		"children": [],
    86  //		"spouse": null
    87  //	}
    88  //
    89  // To construct a Value message representing the above JSON object:
    90  //
    91  //	m, err := structpb.NewValue(map[string]interface{}{
    92  //		"firstName": "John",
    93  //		"lastName":  "Smith",
    94  //		"isAlive":   true,
    95  //		"age":       27,
    96  //		"address": map[string]interface{}{
    97  //			"streetAddress": "21 2nd Street",
    98  //			"city":          "New York",
    99  //			"state":         "NY",
   100  //			"postalCode":    "10021-3100",
   101  //		},
   102  //		"phoneNumbers": []interface{}{
   103  //			map[string]interface{}{
   104  //				"type":   "home",
   105  //				"number": "212 555-1234",
   106  //			},
   107  //			map[string]interface{}{
   108  //				"type":   "office",
   109  //				"number": "646 555-4567",
   110  //			},
   111  //		},
   112  //		"children": []interface{}{},
   113  //		"spouse":   nil,
   114  //	})
   115  //	if err != nil {
   116  //		... // handle error
   117  //	}
   118  //	... // make use of m as a *structpb.Value
   119  package structpb
   120  
   121  import (
   122  	base64 "encoding/base64"
   123  	protojson "google.golang.org/protobuf/encoding/protojson"
   124  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
   125  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
   126  	math "math"
   127  	reflect "reflect"
   128  	sync "sync"
   129  	utf8 "unicode/utf8"
   130  )
   131  
   132  // `NullValue` is a singleton enumeration to represent the null value for the
   133  // `Value` type union.
   134  //
   135  // The JSON representation for `NullValue` is JSON `null`.
   136  type NullValue int32
   137  
   138  const (
   139  	// Null value.
   140  	NullValue_NULL_VALUE NullValue = 0
   141  )
   142  
   143  // Enum value maps for NullValue.
   144  var (
   145  	NullValue_name = map[int32]string{
   146  		0: "NULL_VALUE",
   147  	}
   148  	NullValue_value = map[string]int32{
   149  		"NULL_VALUE": 0,
   150  	}
   151  )
   152  
   153  func (x NullValue) Enum() *NullValue {
   154  	p := new(NullValue)
   155  	*p = x
   156  	return p
   157  }
   158  
   159  func (x NullValue) String() string {
   160  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   161  }
   162  
   163  func (NullValue) Descriptor() protoreflect.EnumDescriptor {
   164  	return file_google_protobuf_struct_proto_enumTypes[0].Descriptor()
   165  }
   166  
   167  func (NullValue) Type() protoreflect.EnumType {
   168  	return &file_google_protobuf_struct_proto_enumTypes[0]
   169  }
   170  
   171  func (x NullValue) Number() protoreflect.EnumNumber {
   172  	return protoreflect.EnumNumber(x)
   173  }
   174  
   175  // Deprecated: Use NullValue.Descriptor instead.
   176  func (NullValue) EnumDescriptor() ([]byte, []int) {
   177  	return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0}
   178  }
   179  
   180  // `Struct` represents a structured data value, consisting of fields
   181  // which map to dynamically typed values. In some languages, `Struct`
   182  // might be supported by a native representation. For example, in
   183  // scripting languages like JS a struct is represented as an
   184  // object. The details of that representation are described together
   185  // with the proto support for the language.
   186  //
   187  // The JSON representation for `Struct` is JSON object.
   188  type Struct struct {
   189  	state         protoimpl.MessageState
   190  	sizeCache     protoimpl.SizeCache
   191  	unknownFields protoimpl.UnknownFields
   192  
   193  	// Unordered map of dynamically typed values.
   194  	Fields map[string]*Value `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   195  }
   196  
   197  // NewStruct constructs a Struct from a general-purpose Go map.
   198  // The map keys must be valid UTF-8.
   199  // The map values are converted using NewValue.
   200  func NewStruct(v map[string]interface{}) (*Struct, error) {
   201  	x := &Struct{Fields: make(map[string]*Value, len(v))}
   202  	for k, v := range v {
   203  		if !utf8.ValidString(k) {
   204  			return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", k)
   205  		}
   206  		var err error
   207  		x.Fields[k], err = NewValue(v)
   208  		if err != nil {
   209  			return nil, err
   210  		}
   211  	}
   212  	return x, nil
   213  }
   214  
   215  // AsMap converts x to a general-purpose Go map.
   216  // The map values are converted by calling Value.AsInterface.
   217  func (x *Struct) AsMap() map[string]interface{} {
   218  	f := x.GetFields()
   219  	vs := make(map[string]interface{}, len(f))
   220  	for k, v := range f {
   221  		vs[k] = v.AsInterface()
   222  	}
   223  	return vs
   224  }
   225  
   226  func (x *Struct) MarshalJSON() ([]byte, error) {
   227  	return protojson.Marshal(x)
   228  }
   229  
   230  func (x *Struct) UnmarshalJSON(b []byte) error {
   231  	return protojson.Unmarshal(b, x)
   232  }
   233  
   234  func (x *Struct) Reset() {
   235  	*x = Struct{}
   236  	if protoimpl.UnsafeEnabled {
   237  		mi := &file_google_protobuf_struct_proto_msgTypes[0]
   238  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   239  		ms.StoreMessageInfo(mi)
   240  	}
   241  }
   242  
   243  func (x *Struct) String() string {
   244  	return protoimpl.X.MessageStringOf(x)
   245  }
   246  
   247  func (*Struct) ProtoMessage() {}
   248  
   249  func (x *Struct) ProtoReflect() protoreflect.Message {
   250  	mi := &file_google_protobuf_struct_proto_msgTypes[0]
   251  	if protoimpl.UnsafeEnabled && x != nil {
   252  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   253  		if ms.LoadMessageInfo() == nil {
   254  			ms.StoreMessageInfo(mi)
   255  		}
   256  		return ms
   257  	}
   258  	return mi.MessageOf(x)
   259  }
   260  
   261  // Deprecated: Use Struct.ProtoReflect.Descriptor instead.
   262  func (*Struct) Descriptor() ([]byte, []int) {
   263  	return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0}
   264  }
   265  
   266  func (x *Struct) GetFields() map[string]*Value {
   267  	if x != nil {
   268  		return x.Fields
   269  	}
   270  	return nil
   271  }
   272  
   273  // `Value` represents a dynamically typed value which can be either
   274  // null, a number, a string, a boolean, a recursive struct value, or a
   275  // list of values. A producer of value is expected to set one of these
   276  // variants. Absence of any variant indicates an error.
   277  //
   278  // The JSON representation for `Value` is JSON value.
   279  type Value struct {
   280  	state         protoimpl.MessageState
   281  	sizeCache     protoimpl.SizeCache
   282  	unknownFields protoimpl.UnknownFields
   283  
   284  	// The kind of value.
   285  	//
   286  	// Types that are assignable to Kind:
   287  	//
   288  	//	*Value_NullValue
   289  	//	*Value_NumberValue
   290  	//	*Value_StringValue
   291  	//	*Value_BoolValue
   292  	//	*Value_StructValue
   293  	//	*Value_ListValue
   294  	Kind isValue_Kind `protobuf_oneof:"kind"`
   295  }
   296  
   297  // NewValue constructs a Value from a general-purpose Go interface.
   298  //
   299  //	╔════════════════════════╤════════════════════════════════════════════╗
   300  //	║ Go type                │ Conversion                                 ║
   301  //	╠════════════════════════╪════════════════════════════════════════════╣
   302  //	║ nil                    │ stored as NullValue                        ║
   303  //	║ bool                   │ stored as BoolValue                        ║
   304  //	║ int, int32, int64      │ stored as NumberValue                      ║
   305  //	║ uint, uint32, uint64   │ stored as NumberValue                      ║
   306  //	║ float32, float64       │ stored as NumberValue                      ║
   307  //	║ string                 │ stored as StringValue; must be valid UTF-8 ║
   308  //	║ []byte                 │ stored as StringValue; base64-encoded      ║
   309  //	║ map[string]interface{} │ stored as StructValue                      ║
   310  //	║ []interface{}          │ stored as ListValue                        ║
   311  //	╚════════════════════════╧════════════════════════════════════════════╝
   312  //
   313  // When converting an int64 or uint64 to a NumberValue, numeric precision loss
   314  // is possible since they are stored as a float64.
   315  func NewValue(v interface{}) (*Value, error) {
   316  	switch v := v.(type) {
   317  	case nil:
   318  		return NewNullValue(), nil
   319  	case bool:
   320  		return NewBoolValue(v), nil
   321  	case int:
   322  		return NewNumberValue(float64(v)), nil
   323  	case int32:
   324  		return NewNumberValue(float64(v)), nil
   325  	case int64:
   326  		return NewNumberValue(float64(v)), nil
   327  	case uint:
   328  		return NewNumberValue(float64(v)), nil
   329  	case uint32:
   330  		return NewNumberValue(float64(v)), nil
   331  	case uint64:
   332  		return NewNumberValue(float64(v)), nil
   333  	case float32:
   334  		return NewNumberValue(float64(v)), nil
   335  	case float64:
   336  		return NewNumberValue(float64(v)), nil
   337  	case string:
   338  		if !utf8.ValidString(v) {
   339  			return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", v)
   340  		}
   341  		return NewStringValue(v), nil
   342  	case []byte:
   343  		s := base64.StdEncoding.EncodeToString(v)
   344  		return NewStringValue(s), nil
   345  	case map[string]interface{}:
   346  		v2, err := NewStruct(v)
   347  		if err != nil {
   348  			return nil, err
   349  		}
   350  		return NewStructValue(v2), nil
   351  	case []interface{}:
   352  		v2, err := NewList(v)
   353  		if err != nil {
   354  			return nil, err
   355  		}
   356  		return NewListValue(v2), nil
   357  	default:
   358  		return nil, protoimpl.X.NewError("invalid type: %T", v)
   359  	}
   360  }
   361  
   362  // NewNullValue constructs a new null Value.
   363  func NewNullValue() *Value {
   364  	return &Value{Kind: &Value_NullValue{NullValue: NullValue_NULL_VALUE}}
   365  }
   366  
   367  // NewBoolValue constructs a new boolean Value.
   368  func NewBoolValue(v bool) *Value {
   369  	return &Value{Kind: &Value_BoolValue{BoolValue: v}}
   370  }
   371  
   372  // NewNumberValue constructs a new number Value.
   373  func NewNumberValue(v float64) *Value {
   374  	return &Value{Kind: &Value_NumberValue{NumberValue: v}}
   375  }
   376  
   377  // NewStringValue constructs a new string Value.
   378  func NewStringValue(v string) *Value {
   379  	return &Value{Kind: &Value_StringValue{StringValue: v}}
   380  }
   381  
   382  // NewStructValue constructs a new struct Value.
   383  func NewStructValue(v *Struct) *Value {
   384  	return &Value{Kind: &Value_StructValue{StructValue: v}}
   385  }
   386  
   387  // NewListValue constructs a new list Value.
   388  func NewListValue(v *ListValue) *Value {
   389  	return &Value{Kind: &Value_ListValue{ListValue: v}}
   390  }
   391  
   392  // AsInterface converts x to a general-purpose Go interface.
   393  //
   394  // Calling Value.MarshalJSON and "encoding/json".Marshal on this output produce
   395  // semantically equivalent JSON (assuming no errors occur).
   396  //
   397  // Floating-point values (i.e., "NaN", "Infinity", and "-Infinity") are
   398  // converted as strings to remain compatible with MarshalJSON.
   399  func (x *Value) AsInterface() interface{} {
   400  	switch v := x.GetKind().(type) {
   401  	case *Value_NumberValue:
   402  		if v != nil {
   403  			switch {
   404  			case math.IsNaN(v.NumberValue):
   405  				return "NaN"
   406  			case math.IsInf(v.NumberValue, +1):
   407  				return "Infinity"
   408  			case math.IsInf(v.NumberValue, -1):
   409  				return "-Infinity"
   410  			default:
   411  				return v.NumberValue
   412  			}
   413  		}
   414  	case *Value_StringValue:
   415  		if v != nil {
   416  			return v.StringValue
   417  		}
   418  	case *Value_BoolValue:
   419  		if v != nil {
   420  			return v.BoolValue
   421  		}
   422  	case *Value_StructValue:
   423  		if v != nil {
   424  			return v.StructValue.AsMap()
   425  		}
   426  	case *Value_ListValue:
   427  		if v != nil {
   428  			return v.ListValue.AsSlice()
   429  		}
   430  	}
   431  	return nil
   432  }
   433  
   434  func (x *Value) MarshalJSON() ([]byte, error) {
   435  	return protojson.Marshal(x)
   436  }
   437  
   438  func (x *Value) UnmarshalJSON(b []byte) error {
   439  	return protojson.Unmarshal(b, x)
   440  }
   441  
   442  func (x *Value) Reset() {
   443  	*x = Value{}
   444  	if protoimpl.UnsafeEnabled {
   445  		mi := &file_google_protobuf_struct_proto_msgTypes[1]
   446  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   447  		ms.StoreMessageInfo(mi)
   448  	}
   449  }
   450  
   451  func (x *Value) String() string {
   452  	return protoimpl.X.MessageStringOf(x)
   453  }
   454  
   455  func (*Value) ProtoMessage() {}
   456  
   457  func (x *Value) ProtoReflect() protoreflect.Message {
   458  	mi := &file_google_protobuf_struct_proto_msgTypes[1]
   459  	if protoimpl.UnsafeEnabled && x != nil {
   460  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   461  		if ms.LoadMessageInfo() == nil {
   462  			ms.StoreMessageInfo(mi)
   463  		}
   464  		return ms
   465  	}
   466  	return mi.MessageOf(x)
   467  }
   468  
   469  // Deprecated: Use Value.ProtoReflect.Descriptor instead.
   470  func (*Value) Descriptor() ([]byte, []int) {
   471  	return file_google_protobuf_struct_proto_rawDescGZIP(), []int{1}
   472  }
   473  
   474  func (m *Value) GetKind() isValue_Kind {
   475  	if m != nil {
   476  		return m.Kind
   477  	}
   478  	return nil
   479  }
   480  
   481  func (x *Value) GetNullValue() NullValue {
   482  	if x, ok := x.GetKind().(*Value_NullValue); ok {
   483  		return x.NullValue
   484  	}
   485  	return NullValue_NULL_VALUE
   486  }
   487  
   488  func (x *Value) GetNumberValue() float64 {
   489  	if x, ok := x.GetKind().(*Value_NumberValue); ok {
   490  		return x.NumberValue
   491  	}
   492  	return 0
   493  }
   494  
   495  func (x *Value) GetStringValue() string {
   496  	if x, ok := x.GetKind().(*Value_StringValue); ok {
   497  		return x.StringValue
   498  	}
   499  	return ""
   500  }
   501  
   502  func (x *Value) GetBoolValue() bool {
   503  	if x, ok := x.GetKind().(*Value_BoolValue); ok {
   504  		return x.BoolValue
   505  	}
   506  	return false
   507  }
   508  
   509  func (x *Value) GetStructValue() *Struct {
   510  	if x, ok := x.GetKind().(*Value_StructValue); ok {
   511  		return x.StructValue
   512  	}
   513  	return nil
   514  }
   515  
   516  func (x *Value) GetListValue() *ListValue {
   517  	if x, ok := x.GetKind().(*Value_ListValue); ok {
   518  		return x.ListValue
   519  	}
   520  	return nil
   521  }
   522  
   523  type isValue_Kind interface {
   524  	isValue_Kind()
   525  }
   526  
   527  type Value_NullValue struct {
   528  	// Represents a null value.
   529  	NullValue NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
   530  }
   531  
   532  type Value_NumberValue struct {
   533  	// Represents a double value.
   534  	NumberValue float64 `protobuf:"fixed64,2,opt,name=number_value,json=numberValue,proto3,oneof"`
   535  }
   536  
   537  type Value_StringValue struct {
   538  	// Represents a string value.
   539  	StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"`
   540  }
   541  
   542  type Value_BoolValue struct {
   543  	// Represents a boolean value.
   544  	BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"`
   545  }
   546  
   547  type Value_StructValue struct {
   548  	// Represents a structured value.
   549  	StructValue *Struct `protobuf:"bytes,5,opt,name=struct_value,json=structValue,proto3,oneof"`
   550  }
   551  
   552  type Value_ListValue struct {
   553  	// Represents a repeated `Value`.
   554  	ListValue *ListValue `protobuf:"bytes,6,opt,name=list_value,json=listValue,proto3,oneof"`
   555  }
   556  
   557  func (*Value_NullValue) isValue_Kind() {}
   558  
   559  func (*Value_NumberValue) isValue_Kind() {}
   560  
   561  func (*Value_StringValue) isValue_Kind() {}
   562  
   563  func (*Value_BoolValue) isValue_Kind() {}
   564  
   565  func (*Value_StructValue) isValue_Kind() {}
   566  
   567  func (*Value_ListValue) isValue_Kind() {}
   568  
   569  // `ListValue` is a wrapper around a repeated field of values.
   570  //
   571  // The JSON representation for `ListValue` is JSON array.
   572  type ListValue struct {
   573  	state         protoimpl.MessageState
   574  	sizeCache     protoimpl.SizeCache
   575  	unknownFields protoimpl.UnknownFields
   576  
   577  	// Repeated field of dynamically typed values.
   578  	Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
   579  }
   580  
   581  // NewList constructs a ListValue from a general-purpose Go slice.
   582  // The slice elements are converted using NewValue.
   583  func NewList(v []interface{}) (*ListValue, error) {
   584  	x := &ListValue{Values: make([]*Value, len(v))}
   585  	for i, v := range v {
   586  		var err error
   587  		x.Values[i], err = NewValue(v)
   588  		if err != nil {
   589  			return nil, err
   590  		}
   591  	}
   592  	return x, nil
   593  }
   594  
   595  // AsSlice converts x to a general-purpose Go slice.
   596  // The slice elements are converted by calling Value.AsInterface.
   597  func (x *ListValue) AsSlice() []interface{} {
   598  	vals := x.GetValues()
   599  	vs := make([]interface{}, len(vals))
   600  	for i, v := range vals {
   601  		vs[i] = v.AsInterface()
   602  	}
   603  	return vs
   604  }
   605  
   606  func (x *ListValue) MarshalJSON() ([]byte, error) {
   607  	return protojson.Marshal(x)
   608  }
   609  
   610  func (x *ListValue) UnmarshalJSON(b []byte) error {
   611  	return protojson.Unmarshal(b, x)
   612  }
   613  
   614  func (x *ListValue) Reset() {
   615  	*x = ListValue{}
   616  	if protoimpl.UnsafeEnabled {
   617  		mi := &file_google_protobuf_struct_proto_msgTypes[2]
   618  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   619  		ms.StoreMessageInfo(mi)
   620  	}
   621  }
   622  
   623  func (x *ListValue) String() string {
   624  	return protoimpl.X.MessageStringOf(x)
   625  }
   626  
   627  func (*ListValue) ProtoMessage() {}
   628  
   629  func (x *ListValue) ProtoReflect() protoreflect.Message {
   630  	mi := &file_google_protobuf_struct_proto_msgTypes[2]
   631  	if protoimpl.UnsafeEnabled && x != nil {
   632  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   633  		if ms.LoadMessageInfo() == nil {
   634  			ms.StoreMessageInfo(mi)
   635  		}
   636  		return ms
   637  	}
   638  	return mi.MessageOf(x)
   639  }
   640  
   641  // Deprecated: Use ListValue.ProtoReflect.Descriptor instead.
   642  func (*ListValue) Descriptor() ([]byte, []int) {
   643  	return file_google_protobuf_struct_proto_rawDescGZIP(), []int{2}
   644  }
   645  
   646  func (x *ListValue) GetValues() []*Value {
   647  	if x != nil {
   648  		return x.Values
   649  	}
   650  	return nil
   651  }
   652  
   653  var File_google_protobuf_struct_proto protoreflect.FileDescriptor
   654  
   655  var file_google_protobuf_struct_proto_rawDesc = []byte{
   656  	0x0a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
   657  	0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f,
   658  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22,
   659  	0x98, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x66, 0x69,
   660  	0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f,
   661  	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72,
   662  	0x75, 0x63, 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
   663  	0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x51, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64,
   664  	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
   665  	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
   666  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   667  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
   668  	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb2, 0x02, 0x0a, 0x05, 0x56,
   669  	0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c,
   670  	0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   671  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56,
   672  	0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75,
   673  	0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75,
   674  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x62, 0x65,
   675  	0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67,
   676  	0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b,
   677  	0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62,
   678  	0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48,
   679  	0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0c,
   680  	0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01,
   681  	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
   682  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73,
   683  	0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6c, 0x69,
   684  	0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
   685  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
   686  	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69,
   687  	0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22,
   688  	0x3b, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x06,
   689  	0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
   690  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56,
   691  	0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2a, 0x1b, 0x0a, 0x09,
   692  	0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x55, 0x4c,
   693  	0x4c, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x00, 0x42, 0x7f, 0x0a, 0x13, 0x63, 0x6f, 0x6d,
   694  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
   695  	0x42, 0x0b, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
   696  	0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f,
   697  	0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65,
   698  	0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x70, 0x62,
   699  	0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67,
   700  	0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c,
   701  	0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
   702  	0x6f, 0x33,
   703  }
   704  
   705  var (
   706  	file_google_protobuf_struct_proto_rawDescOnce sync.Once
   707  	file_google_protobuf_struct_proto_rawDescData = file_google_protobuf_struct_proto_rawDesc
   708  )
   709  
   710  func file_google_protobuf_struct_proto_rawDescGZIP() []byte {
   711  	file_google_protobuf_struct_proto_rawDescOnce.Do(func() {
   712  		file_google_protobuf_struct_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_struct_proto_rawDescData)
   713  	})
   714  	return file_google_protobuf_struct_proto_rawDescData
   715  }
   716  
   717  var file_google_protobuf_struct_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
   718  var file_google_protobuf_struct_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
   719  var file_google_protobuf_struct_proto_goTypes = []interface{}{
   720  	(NullValue)(0),    // 0: google.protobuf.NullValue
   721  	(*Struct)(nil),    // 1: google.protobuf.Struct
   722  	(*Value)(nil),     // 2: google.protobuf.Value
   723  	(*ListValue)(nil), // 3: google.protobuf.ListValue
   724  	nil,               // 4: google.protobuf.Struct.FieldsEntry
   725  }
   726  var file_google_protobuf_struct_proto_depIdxs = []int32{
   727  	4, // 0: google.protobuf.Struct.fields:type_name -> google.protobuf.Struct.FieldsEntry
   728  	0, // 1: google.protobuf.Value.null_value:type_name -> google.protobuf.NullValue
   729  	1, // 2: google.protobuf.Value.struct_value:type_name -> google.protobuf.Struct
   730  	3, // 3: google.protobuf.Value.list_value:type_name -> google.protobuf.ListValue
   731  	2, // 4: google.protobuf.ListValue.values:type_name -> google.protobuf.Value
   732  	2, // 5: google.protobuf.Struct.FieldsEntry.value:type_name -> google.protobuf.Value
   733  	6, // [6:6] is the sub-list for method output_type
   734  	6, // [6:6] is the sub-list for method input_type
   735  	6, // [6:6] is the sub-list for extension type_name
   736  	6, // [6:6] is the sub-list for extension extendee
   737  	0, // [0:6] is the sub-list for field type_name
   738  }
   739  
   740  func init() { file_google_protobuf_struct_proto_init() }
   741  func file_google_protobuf_struct_proto_init() {
   742  	if File_google_protobuf_struct_proto != nil {
   743  		return
   744  	}
   745  	if !protoimpl.UnsafeEnabled {
   746  		file_google_protobuf_struct_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   747  			switch v := v.(*Struct); i {
   748  			case 0:
   749  				return &v.state
   750  			case 1:
   751  				return &v.sizeCache
   752  			case 2:
   753  				return &v.unknownFields
   754  			default:
   755  				return nil
   756  			}
   757  		}
   758  		file_google_protobuf_struct_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   759  			switch v := v.(*Value); i {
   760  			case 0:
   761  				return &v.state
   762  			case 1:
   763  				return &v.sizeCache
   764  			case 2:
   765  				return &v.unknownFields
   766  			default:
   767  				return nil
   768  			}
   769  		}
   770  		file_google_protobuf_struct_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   771  			switch v := v.(*ListValue); i {
   772  			case 0:
   773  				return &v.state
   774  			case 1:
   775  				return &v.sizeCache
   776  			case 2:
   777  				return &v.unknownFields
   778  			default:
   779  				return nil
   780  			}
   781  		}
   782  	}
   783  	file_google_protobuf_struct_proto_msgTypes[1].OneofWrappers = []interface{}{
   784  		(*Value_NullValue)(nil),
   785  		(*Value_NumberValue)(nil),
   786  		(*Value_StringValue)(nil),
   787  		(*Value_BoolValue)(nil),
   788  		(*Value_StructValue)(nil),
   789  		(*Value_ListValue)(nil),
   790  	}
   791  	type x struct{}
   792  	out := protoimpl.TypeBuilder{
   793  		File: protoimpl.DescBuilder{
   794  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
   795  			RawDescriptor: file_google_protobuf_struct_proto_rawDesc,
   796  			NumEnums:      1,
   797  			NumMessages:   4,
   798  			NumExtensions: 0,
   799  			NumServices:   0,
   800  		},
   801  		GoTypes:           file_google_protobuf_struct_proto_goTypes,
   802  		DependencyIndexes: file_google_protobuf_struct_proto_depIdxs,
   803  		EnumInfos:         file_google_protobuf_struct_proto_enumTypes,
   804  		MessageInfos:      file_google_protobuf_struct_proto_msgTypes,
   805  	}.Build()
   806  	File_google_protobuf_struct_proto = out.File
   807  	file_google_protobuf_struct_proto_rawDesc = nil
   808  	file_google_protobuf_struct_proto_goTypes = nil
   809  	file_google_protobuf_struct_proto_depIdxs = nil
   810  }
   811  

View as plain text