| // Protocol Buffers - Google's data interchange format | |
| // Copyright 2008 Google Inc. All rights reserved. | |
| // https://developers.google.com/protocol-buffers/ | |
| // | |
| // Redistribution and use in source and binary forms, with or without | |
| // modification, are permitted provided that the following conditions are | |
| // met: | |
| // | |
| // * Redistributions of source code must retain the above copyright | |
| // notice, this list of conditions and the following disclaimer. | |
| // * Redistributions in binary form must reproduce the above | |
| // copyright notice, this list of conditions and the following disclaimer | |
| // in the documentation and/or other materials provided with the | |
| // distribution. | |
| // * Neither the name of Google Inc. nor the names of its | |
| // contributors may be used to endorse or promote products derived from | |
| // this software without specific prior written permission. | |
| // | |
| // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
| // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
| // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
| // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
| // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
| // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
| // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
| // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
| // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| // Code generated by protoc-gen-go. DO NOT EDIT. | |
| // source: google/protobuf/struct.proto | |
| // Package structpb contains generated types for google/protobuf/struct.proto. | |
| // | |
| // The messages (i.e., Value, Struct, and ListValue) defined in struct.proto are | |
| // used to represent arbitrary JSON. The Value message represents a JSON value, | |
| // the Struct message represents a JSON object, and the ListValue message | |
| // represents a JSON array. See https://json.org for more information. | |
| // | |
| // The Value, Struct, and ListValue types have generated MarshalJSON and | |
| // UnmarshalJSON methods such that they serialize JSON equivalent to what the | |
| // messages themselves represent. Use of these types with the | |
| // "google.golang.org/protobuf/encoding/protojson" package | |
| // ensures that they will be serialized as their JSON equivalent. | |
| // | |
| // # Conversion to and from a Go interface | |
| // | |
| // The standard Go "encoding/json" package has functionality to serialize | |
| // arbitrary types to a large degree. The Value.AsInterface, Struct.AsMap, and | |
| // ListValue.AsSlice methods can convert the protobuf message representation into | |
| // a form represented by any, map[string]any, and []any. | |
| // This form can be used with other packages that operate on such data structures | |
| // and also directly with the standard json package. | |
| // | |
| // In order to convert the any, map[string]any, and []any | |
| // forms back as Value, Struct, and ListValue messages, use the NewStruct, | |
| // NewList, and NewValue constructor functions. | |
| // | |
| // # Example usage | |
| // | |
| // Consider the following example JSON object: | |
| // | |
| // { | |
| // "firstName": "John", | |
| // "lastName": "Smith", | |
| // "isAlive": true, | |
| // "age": 27, | |
| // "address": { | |
| // "streetAddress": "21 2nd Street", | |
| // "city": "New York", | |
| // "state": "NY", | |
| // "postalCode": "10021-3100" | |
| // }, | |
| // "phoneNumbers": [ | |
| // { | |
| // "type": "home", | |
| // "number": "212 555-1234" | |
| // }, | |
| // { | |
| // "type": "office", | |
| // "number": "646 555-4567" | |
| // } | |
| // ], | |
| // "children": [], | |
| // "spouse": null | |
| // } | |
| // | |
| // To construct a Value message representing the above JSON object: | |
| // | |
| // m, err := structpb.NewValue(map[string]any{ | |
| // "firstName": "John", | |
| // "lastName": "Smith", | |
| // "isAlive": true, | |
| // "age": 27, | |
| // "address": map[string]any{ | |
| // "streetAddress": "21 2nd Street", | |
| // "city": "New York", | |
| // "state": "NY", | |
| // "postalCode": "10021-3100", | |
| // }, | |
| // "phoneNumbers": []any{ | |
| // map[string]any{ | |
| // "type": "home", | |
| // "number": "212 555-1234", | |
| // }, | |
| // map[string]any{ | |
| // "type": "office", | |
| // "number": "646 555-4567", | |
| // }, | |
| // }, | |
| // "children": []any{}, | |
| // "spouse": nil, | |
| // }) | |
| // if err != nil { | |
| // ... // handle error | |
| // } | |
| // ... // make use of m as a *structpb.Value | |
| package structpb | |
| import ( | |
| base64 "encoding/base64" | |
| json "encoding/json" | |
| protojson "google.golang.org/protobuf/encoding/protojson" | |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" | |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" | |
| math "math" | |
| reflect "reflect" | |
| sync "sync" | |
| utf8 "unicode/utf8" | |
| unsafe "unsafe" | |
| ) | |
| // Represents a JSON `null`. | |
| // | |
| // `NullValue` is a sentinel, using an enum with only one value to represent | |
| // the null value for the `Value` type union. | |
| // | |
| // A field of type `NullValue` with any value other than `0` is considered | |
| // invalid. Most ProtoJSON serializers will emit a `Value` with a `null_value` | |
| // set as a JSON `null` regardless of the integer value, and so will round trip | |
| // to a `0` value. | |
| type NullValue int32 | |
| const ( | |
| // Null value. | |
| NullValue_NULL_VALUE NullValue = 0 | |
| ) | |
| // Enum value maps for NullValue. | |
| var ( | |
| NullValue_name = map[int32]string{ | |
| 0: "NULL_VALUE", | |
| } | |
| NullValue_value = map[string]int32{ | |
| "NULL_VALUE": 0, | |
| } | |
| ) | |
| func (x NullValue) Enum() *NullValue { | |
| p := new(NullValue) | |
| *p = x | |
| return p | |
| } | |
| func (x NullValue) String() string { | |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) | |
| } | |
| func (NullValue) Descriptor() protoreflect.EnumDescriptor { | |
| return file_google_protobuf_struct_proto_enumTypes[0].Descriptor() | |
| } | |
| func (NullValue) Type() protoreflect.EnumType { | |
| return &file_google_protobuf_struct_proto_enumTypes[0] | |
| } | |
| func (x NullValue) Number() protoreflect.EnumNumber { | |
| return protoreflect.EnumNumber(x) | |
| } | |
| // Deprecated: Use NullValue.Descriptor instead. | |
| func (NullValue) EnumDescriptor() ([]byte, []int) { | |
| return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0} | |
| } | |
| // Represents a JSON object. | |
| // | |
| // An unordered key-value map, intending to perfectly capture the semantics of a | |
| // JSON object. This enables parsing any arbitrary JSON payload as a message | |
| // field in ProtoJSON format. | |
| // | |
| // This follows RFC 8259 guidelines for interoperable JSON: notably this type | |
| // cannot represent large Int64 values or `NaN`/`Infinity` numbers, | |
| // since the JSON format generally does not support those values in its number | |
| // type. | |
| // | |
| // If you do not intend to parse arbitrary JSON into your message, a custom | |
| // typed message should be preferred instead of using this type. | |
| type Struct struct { | |
| state protoimpl.MessageState `protogen:"open.v1"` | |
| // Unordered map of dynamically typed values. | |
| Fields map[string]*Value `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` | |
| unknownFields protoimpl.UnknownFields | |
| sizeCache protoimpl.SizeCache | |
| } | |
| // NewStruct constructs a Struct from a general-purpose Go map. | |
| // The map keys must be valid UTF-8. | |
| // The map values are converted using NewValue. | |
| func NewStruct(v map[string]any) (*Struct, error) { | |
| x := &Struct{Fields: make(map[string]*Value, len(v))} | |
| for k, v := range v { | |
| if !utf8.ValidString(k) { | |
| return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", k) | |
| } | |
| var err error | |
| x.Fields[k], err = NewValue(v) | |
| if err != nil { | |
| return nil, err | |
| } | |
| } | |
| return x, nil | |
| } | |
| // AsMap converts x to a general-purpose Go map. | |
| // The map values are converted by calling Value.AsInterface. | |
| func (x *Struct) AsMap() map[string]any { | |
| f := x.GetFields() | |
| vs := make(map[string]any, len(f)) | |
| for k, v := range f { | |
| vs[k] = v.AsInterface() | |
| } | |
| return vs | |
| } | |
| func (x *Struct) MarshalJSON() ([]byte, error) { | |
| return protojson.Marshal(x) | |
| } | |
| func (x *Struct) UnmarshalJSON(b []byte) error { | |
| return protojson.Unmarshal(b, x) | |
| } | |
| func (x *Struct) Reset() { | |
| *x = Struct{} | |
| mi := &file_google_protobuf_struct_proto_msgTypes[0] | |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| ms.StoreMessageInfo(mi) | |
| } | |
| func (x *Struct) String() string { | |
| return protoimpl.X.MessageStringOf(x) | |
| } | |
| func (*Struct) ProtoMessage() {} | |
| func (x *Struct) ProtoReflect() protoreflect.Message { | |
| mi := &file_google_protobuf_struct_proto_msgTypes[0] | |
| if x != nil { | |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| if ms.LoadMessageInfo() == nil { | |
| ms.StoreMessageInfo(mi) | |
| } | |
| return ms | |
| } | |
| return mi.MessageOf(x) | |
| } | |
| // Deprecated: Use Struct.ProtoReflect.Descriptor instead. | |
| func (*Struct) Descriptor() ([]byte, []int) { | |
| return file_google_protobuf_struct_proto_rawDescGZIP(), []int{0} | |
| } | |
| func (x *Struct) GetFields() map[string]*Value { | |
| if x != nil { | |
| return x.Fields | |
| } | |
| return nil | |
| } | |
| // Represents a JSON value. | |
| // | |
| // `Value` represents a dynamically typed value which can be either | |
| // null, a number, a string, a boolean, a recursive struct value, or a | |
| // list of values. A producer of value is expected to set one of these | |
| // variants. Absence of any variant is an invalid state. | |
| type Value struct { | |
| state protoimpl.MessageState `protogen:"open.v1"` | |
| // The kind of value. | |
| // | |
| // Types that are valid to be assigned to Kind: | |
| // | |
| // *Value_NullValue | |
| // *Value_NumberValue | |
| // *Value_StringValue | |
| // *Value_BoolValue | |
| // *Value_StructValue | |
| // *Value_ListValue | |
| Kind isValue_Kind `protobuf_oneof:"kind"` | |
| unknownFields protoimpl.UnknownFields | |
| sizeCache protoimpl.SizeCache | |
| } | |
| // NewValue constructs a Value from a general-purpose Go interface. | |
| // | |
| // ╔═══════════════════════════════════════╤════════════════════════════════════════════╗ | |
| // ║ Go type │ Conversion ║ | |
| // ╠═══════════════════════════════════════╪════════════════════════════════════════════╣ | |
| // ║ nil │ stored as NullValue ║ | |
| // ║ bool │ stored as BoolValue ║ | |
| // ║ int, int8, int16, int32, int64 │ stored as NumberValue ║ | |
| // ║ uint, uint8, uint16, uint32, uint64 │ stored as NumberValue ║ | |
| // ║ float32, float64 │ stored as NumberValue ║ | |
| // ║ json.Number │ stored as NumberValue ║ | |
| // ║ string │ stored as StringValue; must be valid UTF-8 ║ | |
| // ║ []byte │ stored as StringValue; base64-encoded ║ | |
| // ║ map[string]any │ stored as StructValue ║ | |
| // ║ []any │ stored as ListValue ║ | |
| // ╚═══════════════════════════════════════╧════════════════════════════════════════════╝ | |
| // | |
| // When converting an int64 or uint64 to a NumberValue, numeric precision loss | |
| // is possible since they are stored as a float64. | |
| func NewValue(v any) (*Value, error) { | |
| switch v := v.(type) { | |
| case nil: | |
| return NewNullValue(), nil | |
| case bool: | |
| return NewBoolValue(v), nil | |
| case int: | |
| return NewNumberValue(float64(v)), nil | |
| case int8: | |
| return NewNumberValue(float64(v)), nil | |
| case int16: | |
| return NewNumberValue(float64(v)), nil | |
| case int32: | |
| return NewNumberValue(float64(v)), nil | |
| case int64: | |
| return NewNumberValue(float64(v)), nil | |
| case uint: | |
| return NewNumberValue(float64(v)), nil | |
| case uint8: | |
| return NewNumberValue(float64(v)), nil | |
| case uint16: | |
| return NewNumberValue(float64(v)), nil | |
| case uint32: | |
| return NewNumberValue(float64(v)), nil | |
| case uint64: | |
| return NewNumberValue(float64(v)), nil | |
| case float32: | |
| return NewNumberValue(float64(v)), nil | |
| case float64: | |
| return NewNumberValue(float64(v)), nil | |
| case json.Number: | |
| n, err := v.Float64() | |
| if err != nil { | |
| return nil, protoimpl.X.NewError("invalid number format %q, expected a float64: %v", v, err) | |
| } | |
| return NewNumberValue(n), nil | |
| case string: | |
| if !utf8.ValidString(v) { | |
| return nil, protoimpl.X.NewError("invalid UTF-8 in string: %q", v) | |
| } | |
| return NewStringValue(v), nil | |
| case []byte: | |
| s := base64.StdEncoding.EncodeToString(v) | |
| return NewStringValue(s), nil | |
| case map[string]any: | |
| v2, err := NewStruct(v) | |
| if err != nil { | |
| return nil, err | |
| } | |
| return NewStructValue(v2), nil | |
| case []any: | |
| v2, err := NewList(v) | |
| if err != nil { | |
| return nil, err | |
| } | |
| return NewListValue(v2), nil | |
| default: | |
| return nil, protoimpl.X.NewError("invalid type: %T", v) | |
| } | |
| } | |
| // NewNullValue constructs a new null Value. | |
| func NewNullValue() *Value { | |
| return &Value{Kind: &Value_NullValue{NullValue: NullValue_NULL_VALUE}} | |
| } | |
| // NewBoolValue constructs a new boolean Value. | |
| func NewBoolValue(v bool) *Value { | |
| return &Value{Kind: &Value_BoolValue{BoolValue: v}} | |
| } | |
| // NewNumberValue constructs a new number Value. | |
| func NewNumberValue(v float64) *Value { | |
| return &Value{Kind: &Value_NumberValue{NumberValue: v}} | |
| } | |
| // NewStringValue constructs a new string Value. | |
| func NewStringValue(v string) *Value { | |
| return &Value{Kind: &Value_StringValue{StringValue: v}} | |
| } | |
| // NewStructValue constructs a new struct Value. | |
| func NewStructValue(v *Struct) *Value { | |
| return &Value{Kind: &Value_StructValue{StructValue: v}} | |
| } | |
| // NewListValue constructs a new list Value. | |
| func NewListValue(v *ListValue) *Value { | |
| return &Value{Kind: &Value_ListValue{ListValue: v}} | |
| } | |
| // AsInterface converts x to a general-purpose Go interface. | |
| // | |
| // Calling Value.MarshalJSON and "encoding/json".Marshal on this output produce | |
| // semantically equivalent JSON (assuming no errors occur). | |
| // | |
| // Floating-point values (i.e., "NaN", "Infinity", and "-Infinity") are | |
| // converted as strings to remain compatible with MarshalJSON. | |
| func (x *Value) AsInterface() any { | |
| switch v := x.GetKind().(type) { | |
| case *Value_NumberValue: | |
| if v != nil { | |
| switch { | |
| case math.IsNaN(v.NumberValue): | |
| return "NaN" | |
| case math.IsInf(v.NumberValue, +1): | |
| return "Infinity" | |
| case math.IsInf(v.NumberValue, -1): | |
| return "-Infinity" | |
| default: | |
| return v.NumberValue | |
| } | |
| } | |
| case *Value_StringValue: | |
| if v != nil { | |
| return v.StringValue | |
| } | |
| case *Value_BoolValue: | |
| if v != nil { | |
| return v.BoolValue | |
| } | |
| case *Value_StructValue: | |
| if v != nil { | |
| return v.StructValue.AsMap() | |
| } | |
| case *Value_ListValue: | |
| if v != nil { | |
| return v.ListValue.AsSlice() | |
| } | |
| } | |
| return nil | |
| } | |
| func (x *Value) MarshalJSON() ([]byte, error) { | |
| return protojson.Marshal(x) | |
| } | |
| func (x *Value) UnmarshalJSON(b []byte) error { | |
| return protojson.Unmarshal(b, x) | |
| } | |
| func (x *Value) Reset() { | |
| *x = Value{} | |
| mi := &file_google_protobuf_struct_proto_msgTypes[1] | |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| ms.StoreMessageInfo(mi) | |
| } | |
| func (x *Value) String() string { | |
| return protoimpl.X.MessageStringOf(x) | |
| } | |
| func (*Value) ProtoMessage() {} | |
| func (x *Value) ProtoReflect() protoreflect.Message { | |
| mi := &file_google_protobuf_struct_proto_msgTypes[1] | |
| if x != nil { | |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| if ms.LoadMessageInfo() == nil { | |
| ms.StoreMessageInfo(mi) | |
| } | |
| return ms | |
| } | |
| return mi.MessageOf(x) | |
| } | |
| // Deprecated: Use Value.ProtoReflect.Descriptor instead. | |
| func (*Value) Descriptor() ([]byte, []int) { | |
| return file_google_protobuf_struct_proto_rawDescGZIP(), []int{1} | |
| } | |
| func (x *Value) GetKind() isValue_Kind { | |
| if x != nil { | |
| return x.Kind | |
| } | |
| return nil | |
| } | |
| func (x *Value) GetNullValue() NullValue { | |
| if x != nil { | |
| if x, ok := x.Kind.(*Value_NullValue); ok { | |
| return x.NullValue | |
| } | |
| } | |
| return NullValue_NULL_VALUE | |
| } | |
| func (x *Value) GetNumberValue() float64 { | |
| if x != nil { | |
| if x, ok := x.Kind.(*Value_NumberValue); ok { | |
| return x.NumberValue | |
| } | |
| } | |
| return 0 | |
| } | |
| func (x *Value) GetStringValue() string { | |
| if x != nil { | |
| if x, ok := x.Kind.(*Value_StringValue); ok { | |
| return x.StringValue | |
| } | |
| } | |
| return "" | |
| } | |
| func (x *Value) GetBoolValue() bool { | |
| if x != nil { | |
| if x, ok := x.Kind.(*Value_BoolValue); ok { | |
| return x.BoolValue | |
| } | |
| } | |
| return false | |
| } | |
| func (x *Value) GetStructValue() *Struct { | |
| if x != nil { | |
| if x, ok := x.Kind.(*Value_StructValue); ok { | |
| return x.StructValue | |
| } | |
| } | |
| return nil | |
| } | |
| func (x *Value) GetListValue() *ListValue { | |
| if x != nil { | |
| if x, ok := x.Kind.(*Value_ListValue); ok { | |
| return x.ListValue | |
| } | |
| } | |
| return nil | |
| } | |
| type isValue_Kind interface { | |
| isValue_Kind() | |
| } | |
| type Value_NullValue struct { | |
| // Represents a JSON `null`. | |
| NullValue NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"` | |
| } | |
| type Value_NumberValue struct { | |
| // Represents a JSON number. Must not be `NaN`, `Infinity` or | |
| // `-Infinity`, since those are not supported in JSON. This also cannot | |
| // represent large Int64 values, since JSON format generally does not | |
| // support them in its number type. | |
| NumberValue float64 `protobuf:"fixed64,2,opt,name=number_value,json=numberValue,proto3,oneof"` | |
| } | |
| type Value_StringValue struct { | |
| // Represents a JSON string. | |
| StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"` | |
| } | |
| type Value_BoolValue struct { | |
| // Represents a JSON boolean (`true` or `false` literal in JSON). | |
| BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"` | |
| } | |
| type Value_StructValue struct { | |
| // Represents a JSON object. | |
| StructValue *Struct `protobuf:"bytes,5,opt,name=struct_value,json=structValue,proto3,oneof"` | |
| } | |
| type Value_ListValue struct { | |
| // Represents a JSON array. | |
| ListValue *ListValue `protobuf:"bytes,6,opt,name=list_value,json=listValue,proto3,oneof"` | |
| } | |
| func (*Value_NullValue) isValue_Kind() {} | |
| func (*Value_NumberValue) isValue_Kind() {} | |
| func (*Value_StringValue) isValue_Kind() {} | |
| func (*Value_BoolValue) isValue_Kind() {} | |
| func (*Value_StructValue) isValue_Kind() {} | |
| func (*Value_ListValue) isValue_Kind() {} | |
| // Represents a JSON array. | |
| type ListValue struct { | |
| state protoimpl.MessageState `protogen:"open.v1"` | |
| // Repeated field of dynamically typed values. | |
| Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` | |
| unknownFields protoimpl.UnknownFields | |
| sizeCache protoimpl.SizeCache | |
| } | |
| // NewList constructs a ListValue from a general-purpose Go slice. | |
| // The slice elements are converted using NewValue. | |
| func NewList(v []any) (*ListValue, error) { | |
| x := &ListValue{Values: make([]*Value, len(v))} | |
| for i, v := range v { | |
| var err error | |
| x.Values[i], err = NewValue(v) | |
| if err != nil { | |
| return nil, err | |
| } | |
| } | |
| return x, nil | |
| } | |
| // AsSlice converts x to a general-purpose Go slice. | |
| // The slice elements are converted by calling Value.AsInterface. | |
| func (x *ListValue) AsSlice() []any { | |
| vals := x.GetValues() | |
| vs := make([]any, len(vals)) | |
| for i, v := range vals { | |
| vs[i] = v.AsInterface() | |
| } | |
| return vs | |
| } | |
| func (x *ListValue) MarshalJSON() ([]byte, error) { | |
| return protojson.Marshal(x) | |
| } | |
| func (x *ListValue) UnmarshalJSON(b []byte) error { | |
| return protojson.Unmarshal(b, x) | |
| } | |
| func (x *ListValue) Reset() { | |
| *x = ListValue{} | |
| mi := &file_google_protobuf_struct_proto_msgTypes[2] | |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| ms.StoreMessageInfo(mi) | |
| } | |
| func (x *ListValue) String() string { | |
| return protoimpl.X.MessageStringOf(x) | |
| } | |
| func (*ListValue) ProtoMessage() {} | |
| func (x *ListValue) ProtoReflect() protoreflect.Message { | |
| mi := &file_google_protobuf_struct_proto_msgTypes[2] | |
| if x != nil { | |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | |
| if ms.LoadMessageInfo() == nil { | |
| ms.StoreMessageInfo(mi) | |
| } | |
| return ms | |
| } | |
| return mi.MessageOf(x) | |
| } | |
| // Deprecated: Use ListValue.ProtoReflect.Descriptor instead. | |
| func (*ListValue) Descriptor() ([]byte, []int) { | |
| return file_google_protobuf_struct_proto_rawDescGZIP(), []int{2} | |
| } | |
| func (x *ListValue) GetValues() []*Value { | |
| if x != nil { | |
| return x.Values | |
| } | |
| return nil | |
| } | |
| var File_google_protobuf_struct_proto protoreflect.FileDescriptor | |
| const file_google_protobuf_struct_proto_rawDesc = "" + | |
| "\n" + | |
| "\x1cgoogle/protobuf/struct.proto\x12\x0fgoogle.protobuf\"\x98\x01\n" + | |
| "\x06Struct\x12;\n" + | |
| "\x06fields\x18\x01 \x03(\v2#.google.protobuf.Struct.FieldsEntryR\x06fields\x1aQ\n" + | |
| "\vFieldsEntry\x12\x10\n" + | |
| "\x03key\x18\x01 \x01(\tR\x03key\x12,\n" + | |
| "\x05value\x18\x02 \x01(\v2\x16.google.protobuf.ValueR\x05value:\x028\x01\"\xb2\x02\n" + | |
| "\x05Value\x12;\n" + | |
| "\n" + | |
| "null_value\x18\x01 \x01(\x0e2\x1a.google.protobuf.NullValueH\x00R\tnullValue\x12#\n" + | |
| "\fnumber_value\x18\x02 \x01(\x01H\x00R\vnumberValue\x12#\n" + | |
| "\fstring_value\x18\x03 \x01(\tH\x00R\vstringValue\x12\x1f\n" + | |
| "\n" + | |
| "bool_value\x18\x04 \x01(\bH\x00R\tboolValue\x12<\n" + | |
| "\fstruct_value\x18\x05 \x01(\v2\x17.google.protobuf.StructH\x00R\vstructValue\x12;\n" + | |
| "\n" + | |
| "list_value\x18\x06 \x01(\v2\x1a.google.protobuf.ListValueH\x00R\tlistValueB\x06\n" + | |
| "\x04kind\";\n" + | |
| "\tListValue\x12.\n" + | |
| "\x06values\x18\x01 \x03(\v2\x16.google.protobuf.ValueR\x06values*\x1b\n" + | |
| "\tNullValue\x12\x0e\n" + | |
| "\n" + | |
| "NULL_VALUE\x10\x00B\x7f\n" + | |
| "\x13com.google.protobufB\vStructProtoP\x01Z/google.golang.org/protobuf/types/known/structpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3" | |
| var ( | |
| file_google_protobuf_struct_proto_rawDescOnce sync.Once | |
| file_google_protobuf_struct_proto_rawDescData []byte | |
| ) | |
| func file_google_protobuf_struct_proto_rawDescGZIP() []byte { | |
| file_google_protobuf_struct_proto_rawDescOnce.Do(func() { | |
| file_google_protobuf_struct_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_struct_proto_rawDesc), len(file_google_protobuf_struct_proto_rawDesc))) | |
| }) | |
| return file_google_protobuf_struct_proto_rawDescData | |
| } | |
| var file_google_protobuf_struct_proto_enumTypes = make([]protoimpl.EnumInfo, 1) | |
| var file_google_protobuf_struct_proto_msgTypes = make([]protoimpl.MessageInfo, 4) | |
| var file_google_protobuf_struct_proto_goTypes = []any{ | |
| (NullValue)(0), // 0: google.protobuf.NullValue | |
| (*Struct)(nil), // 1: google.protobuf.Struct | |
| (*Value)(nil), // 2: google.protobuf.Value | |
| (*ListValue)(nil), // 3: google.protobuf.ListValue | |
| nil, // 4: google.protobuf.Struct.FieldsEntry | |
| } | |
| var file_google_protobuf_struct_proto_depIdxs = []int32{ | |
| 4, // 0: google.protobuf.Struct.fields:type_name -> google.protobuf.Struct.FieldsEntry | |
| 0, // 1: google.protobuf.Value.null_value:type_name -> google.protobuf.NullValue | |
| 1, // 2: google.protobuf.Value.struct_value:type_name -> google.protobuf.Struct | |
| 3, // 3: google.protobuf.Value.list_value:type_name -> google.protobuf.ListValue | |
| 2, // 4: google.protobuf.ListValue.values:type_name -> google.protobuf.Value | |
| 2, // 5: google.protobuf.Struct.FieldsEntry.value:type_name -> google.protobuf.Value | |
| 6, // [6:6] is the sub-list for method output_type | |
| 6, // [6:6] is the sub-list for method input_type | |
| 6, // [6:6] is the sub-list for extension type_name | |
| 6, // [6:6] is the sub-list for extension extendee | |
| 0, // [0:6] is the sub-list for field type_name | |
| } | |
| func init() { file_google_protobuf_struct_proto_init() } | |
| func file_google_protobuf_struct_proto_init() { | |
| if File_google_protobuf_struct_proto != nil { | |
| return | |
| } | |
| file_google_protobuf_struct_proto_msgTypes[1].OneofWrappers = []any{ | |
| (*Value_NullValue)(nil), | |
| (*Value_NumberValue)(nil), | |
| (*Value_StringValue)(nil), | |
| (*Value_BoolValue)(nil), | |
| (*Value_StructValue)(nil), | |
| (*Value_ListValue)(nil), | |
| } | |
| type x struct{} | |
| out := protoimpl.TypeBuilder{ | |
| File: protoimpl.DescBuilder{ | |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | |
| RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_struct_proto_rawDesc), len(file_google_protobuf_struct_proto_rawDesc)), | |
| NumEnums: 1, | |
| NumMessages: 4, | |
| NumExtensions: 0, | |
| NumServices: 0, | |
| }, | |
| GoTypes: file_google_protobuf_struct_proto_goTypes, | |
| DependencyIndexes: file_google_protobuf_struct_proto_depIdxs, | |
| EnumInfos: file_google_protobuf_struct_proto_enumTypes, | |
| MessageInfos: file_google_protobuf_struct_proto_msgTypes, | |
| }.Build() | |
| File_google_protobuf_struct_proto = out.File | |
| file_google_protobuf_struct_proto_goTypes = nil | |
| file_google_protobuf_struct_proto_depIdxs = nil | |
| } |