github.com/mdaxf/iac@v0.0.0-20240519030858-58a061660378/vendor_skip/google.golang.org/protobuf/proto/proto.go (about)

     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 "github.com/golang/protobuf/proto".MessageV2.
    22  // To convert a v2 message to a v1 message,
    23  // use "github.com/golang/protobuf/proto".MessageV1.
    24  type Message = protoreflect.ProtoMessage
    25  
    26  // Error matches all errors produced by packages in the protobuf module.
    27  //
    28  // That is, errors.Is(err, Error) reports whether an error is produced
    29  // by this module.
    30  var Error error
    31  
    32  func init() {
    33  	Error = errors.Error
    34  }
    35  
    36  // MessageName returns the full name of m.
    37  // If m is nil, it returns an empty string.
    38  func MessageName(m Message) protoreflect.FullName {
    39  	if m == nil {
    40  		return ""
    41  	}
    42  	return m.ProtoReflect().Descriptor().FullName()
    43  }