...

Source file src/google.golang.org/protobuf/proto/proto.go

Documentation: google.golang.org/protobuf/proto

     1  // Copyright 2018 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package proto
     6  
     7  import (
     8  	"google.golang.org/protobuf/internal/errors"
     9  	"google.golang.org/protobuf/reflect/protoreflect"
    10  )
    11  
    12  // Message is the top-level interface that all messages must implement.
    13  // It provides access to a reflective view of a message.
    14  // Any implementation of this interface may be used with all functions in the
    15  // protobuf module that accept a Message, except where otherwise specified.
    16  //
    17  // This is the v2 interface definition for protobuf messages.
    18  // The v1 interface definition is [github.com/golang/protobuf/proto.Message].
    19  //
    20  //   - To convert a v1 message to a v2 message,
    21  //     use [google.golang.org/protobuf/protoadapt.MessageV2Of].
    22  //   - To convert a v2 message to a v1 message,
    23  //     use [google.golang.org/protobuf/protoadapt.MessageV1Of].
    24  type Message = protoreflect.ProtoMessage
    25  
    26  // Error matches all errors produced by packages in the protobuf module
    27  // according to [errors.Is].
    28  //
    29  // Example usage:
    30  //
    31  //	if errors.Is(err, proto.Error) { ... }
    32  var Error error
    33  
    34  func init() {
    35  	Error = errors.Error
    36  }
    37  
    38  // MessageName returns the full name of m.
    39  // If m is nil, it returns an empty string.
    40  func MessageName(m Message) protoreflect.FullName {
    41  	if m == nil {
    42  		return ""
    43  	}
    44  	return m.ProtoReflect().Descriptor().FullName()
    45  }
    46  

View as plain text