Source File
any.pb.go
Belonging Package
google.golang.org/protobuf/types/known/anypb
// 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/any.proto// Package anypb contains generated types for google/protobuf/any.proto.//// The Any message is a dynamic representation of any other message value.// It is functionally a tuple of the full name of the remote message type and// the serialized bytes of the remote message value.//// # Constructing an Any//// An Any message containing another message value is constructed using New://// any, err := anypb.New(m)// if err != nil {// ... // handle error// }// ... // make use of any//// # Unmarshaling an Any//// With a populated Any message, the underlying message can be serialized into// a remote concrete message value in a few ways.//// If the exact concrete type is known, then a new (or pre-existing) instance// of that message can be passed to the UnmarshalTo method://// m := new(foopb.MyMessage)// if err := any.UnmarshalTo(m); err != nil {// ... // handle error// }// ... // make use of m//// If the exact concrete type is not known, then the UnmarshalNew method can be// used to unmarshal the contents into a new instance of the remote message type://// m, err := any.UnmarshalNew()// if err != nil {// ... // handle error// }// ... // make use of m//// UnmarshalNew uses the global type registry to resolve the message type and// construct a new instance of that message to unmarshal into. In order for a// message type to appear in the global registry, the Go type representing that// protobuf message type must be linked into the Go binary. For messages// generated by protoc-gen-go, this is achieved through an import of the// generated Go package representing a .proto file.//// A common pattern with UnmarshalNew is to use a type switch with the resulting// proto.Message value://// switch m := m.(type) {// case *foopb.MyMessage:// ... // make use of m as a *foopb.MyMessage// case *barpb.OtherMessage:// ... // make use of m as a *barpb.OtherMessage// case *bazpb.SomeMessage:// ... // make use of m as a *bazpb.SomeMessage// }//// This pattern ensures that the generated packages containing the message types// listed in the case clauses are linked into the Go binary and therefore also// registered in the global registry.//// # Type checking an Any//// In order to type check whether an Any message represents some other message,// then use the MessageIs method://// if any.MessageIs((*foopb.MyMessage)(nil)) {// ... // make use of any, knowing that it contains a foopb.MyMessage// }//// The MessageIs method can also be used with an allocated instance of the target// message type if the intention is to unmarshal into it if the type matches://// m := new(foopb.MyMessage)// if any.MessageIs(m) {// if err := any.UnmarshalTo(m); err != nil {// ... // handle error// }// ... // make use of m// }package anypbimport (protoprotoreflectprotoregistryprotoimplreflectstringssyncunsafe)// `Any` contains an arbitrary serialized protocol buffer message along with a// URL that describes the type of the serialized message.//// Protobuf library provides support to pack/unpack Any values in the form// of utility functions or additional generated methods of the Any type.//// Example 1: Pack and unpack a message in C++.//// Foo foo = ...;// Any any;// any.PackFrom(foo);// ...// if (any.UnpackTo(&foo)) {// ...// }//// Example 2: Pack and unpack a message in Java.//// Foo foo = ...;// Any any = Any.pack(foo);// ...// if (any.is(Foo.class)) {// foo = any.unpack(Foo.class);// }// // or ...// if (any.isSameTypeAs(Foo.getDefaultInstance())) {// foo = any.unpack(Foo.getDefaultInstance());// }//// Example 3: Pack and unpack a message in Python.//// foo = Foo(...)// any = Any()// any.Pack(foo)// ...// if any.Is(Foo.DESCRIPTOR):// any.Unpack(foo)// ...//// Example 4: Pack and unpack a message in Go//// foo := &pb.Foo{...}// any, err := anypb.New(foo)// if err != nil {// ...// }// ...// foo := &pb.Foo{}// if err := any.UnmarshalTo(foo); err != nil {// ...// }//// The pack methods provided by protobuf library will by default use// 'type.googleapis.com/full.type.name' as the type URL and the unpack// methods only use the fully qualified type name after the last '/'// in the type URL, for example "foo.bar.com/x/y.z" will yield type// name "y.z".//// JSON// ====// The JSON representation of an `Any` value uses the regular// representation of the deserialized, embedded message, with an// additional field `@type` which contains the type URL. Example://// package google.profile;// message Person {// string first_name = 1;// string last_name = 2;// }//// {// "@type": "type.googleapis.com/google.profile.Person",// "firstName": <string>,// "lastName": <string>// }//// If the embedded message type is well-known and has a custom JSON// representation, that representation will be embedded adding a field// `value` which holds the custom JSON in addition to the `@type`// field. Example (for message [google.protobuf.Duration][])://// {// "@type": "type.googleapis.com/google.protobuf.Duration",// "value": "1.212s"// }type Any struct {state protoimpl.MessageState `protogen:"open.v1"`// A URL/resource name that uniquely identifies the type of the serialized// protocol buffer message. This string must contain at least// one "/" character. The last segment of the URL's path must represent// the fully qualified name of the type (as in// `path/google.protobuf.Duration`). The name should be in a canonical form// (e.g., leading "." is not accepted).//// In practice, teams usually precompile into the binary all types that they// expect it to use in the context of Any. However, for URLs which use the// scheme `http`, `https`, or no scheme, one can optionally set up a type// server that maps type URLs to message definitions as follows://// - If no scheme is provided, `https` is assumed.// - An HTTP GET on the URL must yield a [google.protobuf.Type][]// value in binary format, or produce an error.// - Applications are allowed to cache lookup results based on the// URL, or have them precompiled into a binary to avoid any// lookup. Therefore, binary compatibility needs to be preserved// on changes to types. (Use versioned type names to manage// breaking changes.)//// Note: this functionality is not currently available in the official// protobuf release, and it is not used for type URLs beginning with// type.googleapis.com. As of May 2023, there are no widely used type server// implementations and no plans to implement one.//// Schemes other than `http`, `https` (or the empty scheme) might be// used with implementation specific semantics.TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`// Must be a valid serialized protocol buffer of the above specified type.Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`unknownFields protoimpl.UnknownFieldssizeCache protoimpl.SizeCache}// New marshals src into a new Any instance.func ( proto.Message) (*Any, error) {:= new(Any)if := .MarshalFrom(); != nil {return nil,}return , nil}// MarshalFrom marshals src into dst as the underlying message// using the provided marshal options.//// If no options are specified, call dst.MarshalFrom instead.func ( *Any, proto.Message, proto.MarshalOptions) error {const = "type.googleapis.com/"if == nil {return protoimpl.X.NewError("invalid nil source message")}, := .Marshal()if != nil {return}.TypeUrl = + string(.ProtoReflect().Descriptor().FullName()).Value =return nil}// UnmarshalTo unmarshals the underlying message from src into dst// using the provided unmarshal options.// It reports an error if dst is not of the right message type.//// If no options are specified, call src.UnmarshalTo instead.func ( *Any, proto.Message, proto.UnmarshalOptions) error {if == nil {return protoimpl.X.NewError("invalid nil source message")}if !.MessageIs() {:= .ProtoReflect().Descriptor().FullName():= .MessageName()return protoimpl.X.NewError("mismatched message type: got %q, want %q", , )}return .Unmarshal(.GetValue(), )}// UnmarshalNew unmarshals the underlying message from src into dst,// which is newly created message using a type resolved from the type URL.// The message type is resolved according to opt.Resolver,// which should implement protoregistry.MessageTypeResolver.// It reports an error if the underlying message type could not be resolved.//// If no options are specified, call src.UnmarshalNew instead.func ( *Any, proto.UnmarshalOptions) ( proto.Message, error) {if .GetTypeUrl() == "" {return nil, protoimpl.X.NewError("invalid empty type URL")}if .Resolver == nil {.Resolver = protoregistry.GlobalTypes}, := .Resolver.(protoregistry.MessageTypeResolver)if ! {return nil, protoregistry.NotFound}, := .FindMessageByURL(.GetTypeUrl())if != nil {if == protoregistry.NotFound {return nil,}return nil, protoimpl.X.NewError("could not resolve %q: %v", .GetTypeUrl(), )}= .New().Interface()return , .Unmarshal(.GetValue(), )}// MessageIs reports whether the underlying message is of the same type as m.func ( *Any) ( proto.Message) bool {if == nil {return false}:= .GetTypeUrl():= string(.ProtoReflect().Descriptor().FullName())if !strings.HasSuffix(, ) {return false}return len() == len() || [len()-len()-1] == '/'}// MessageName reports the full name of the underlying message,// returning an empty string if invalid.func ( *Any) () protoreflect.FullName {:= .GetTypeUrl():= protoreflect.FullName()if := strings.LastIndexByte(, '/'); >= 0 {= [+len("/"):]}if !.IsValid() {return ""}return}// MarshalFrom marshals m into x as the underlying message.func ( *Any) ( proto.Message) error {return MarshalFrom(, , proto.MarshalOptions{})}// UnmarshalTo unmarshals the contents of the underlying message of x into m.// It resets m before performing the unmarshal operation.// It reports an error if m is not of the right message type.func ( *Any) ( proto.Message) error {return UnmarshalTo(, , proto.UnmarshalOptions{})}// UnmarshalNew unmarshals the contents of the underlying message of x into// a newly allocated message of the specified type.// It reports an error if the underlying message type could not be resolved.func ( *Any) () (proto.Message, error) {return UnmarshalNew(, proto.UnmarshalOptions{})}func ( *Any) () {* = Any{}:= &file_google_protobuf_any_proto_msgTypes[0]:= protoimpl.X.MessageStateOf(protoimpl.Pointer()).StoreMessageInfo()}func ( *Any) () string {return protoimpl.X.MessageStringOf()}func (*Any) () {}func ( *Any) () protoreflect.Message {:= &file_google_protobuf_any_proto_msgTypes[0]if != nil {:= protoimpl.X.MessageStateOf(protoimpl.Pointer())if .LoadMessageInfo() == nil {.StoreMessageInfo()}return}return .MessageOf()}// Deprecated: Use Any.ProtoReflect.Descriptor instead.func (*Any) () ([]byte, []int) {return file_google_protobuf_any_proto_rawDescGZIP(), []int{0}}func ( *Any) () string {if != nil {return .TypeUrl}return ""}func ( *Any) () []byte {if != nil {return .Value}return nil}var File_google_protobuf_any_proto protoreflect.FileDescriptorconst file_google_protobuf_any_proto_rawDesc = "" +"\n" +"\x19google/protobuf/any.proto\x12\x0fgoogle.protobuf\"6\n" +"\x03Any\x12\x19\n" +"\btype_url\x18\x01 \x01(\tR\atypeUrl\x12\x14\n" +"\x05value\x18\x02 \x01(\fR\x05valueBv\n" +"\x13com.google.protobufB\bAnyProtoP\x01Z,google.golang.org/protobuf/types/known/anypb\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3"var (file_google_protobuf_any_proto_rawDescOnce sync.Oncefile_google_protobuf_any_proto_rawDescData []byte)func file_google_protobuf_any_proto_rawDescGZIP() []byte {file_google_protobuf_any_proto_rawDescOnce.Do(func() {file_google_protobuf_any_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_any_proto_rawDesc), len(file_google_protobuf_any_proto_rawDesc)))})return file_google_protobuf_any_proto_rawDescData}var file_google_protobuf_any_proto_msgTypes = make([]protoimpl.MessageInfo, 1)var file_google_protobuf_any_proto_goTypes = []any{(*Any)(nil), // 0: google.protobuf.Any}var file_google_protobuf_any_proto_depIdxs = []int32{0, // [0:0] is the sub-list for method output_type0, // [0:0] is the sub-list for method input_type0, // [0:0] is the sub-list for extension type_name0, // [0:0] is the sub-list for extension extendee0, // [0:0] is the sub-list for field type_name}func init() { file_google_protobuf_any_proto_init() }func file_google_protobuf_any_proto_init() {if File_google_protobuf_any_proto != nil {return}type struct{}:= protoimpl.TypeBuilder{File: protoimpl.DescBuilder{GoPackagePath: reflect.TypeOf({}).PkgPath(),RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_any_proto_rawDesc), len(file_google_protobuf_any_proto_rawDesc)),NumEnums: 0,NumMessages: 1,NumExtensions: 0,NumServices: 0,},GoTypes: file_google_protobuf_any_proto_goTypes,DependencyIndexes: file_google_protobuf_any_proto_depIdxs,MessageInfos: file_google_protobuf_any_proto_msgTypes,}.Build()File_google_protobuf_any_proto = .Filefile_google_protobuf_any_proto_goTypes = nilfile_google_protobuf_any_proto_depIdxs = nil}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |