Deprecated: Use the "google.golang.org/protobuf" module instead.

package descriptor

import "github.com/golang/protobuf/descriptor"

Package descriptor provides functions for obtaining protocol buffer descriptors for generated Go types.

These functions cannot go in package proto because they depend on the generated protobuf descriptor messages, which themselves depend on proto.

Example (Options)

Code:play 

package main

import (
	"fmt"

	"github.com/golang/protobuf/descriptor"
	tpb "github.com/golang/protobuf/proto/test_proto"
)

func main() {
	var msg *tpb.MyMessageSet
	_, md := descriptor.ForMessage(msg)
	if md.GetOptions().GetMessageSetWireFormat() {
		fmt.Printf("%v uses option message_set_wire_format.\n", md.GetName())
	}

}

Output:

MyMessageSet uses option message_set_wire_format.

Index

Examples

Functions

func ForMessage

func ForMessage(msg Message) (fd *protobuf.FileDescriptorProto, md *protobuf.DescriptorProto)

ForMessage returns a FileDescriptorProto and a DescriptorProto from within it describing the given message.

Types

type Message

type Message interface {
	proto.Message
	Descriptor() ([]byte, []int)
}

Message is a proto.Message with a method to return its descriptor.

Message types generated by the protocol compiler always satisfy the Message interface.

Source Files

descriptor.go

Version
v1.3.5
Published
Mar 12, 2020
Platform
darwin/amd64
Imports
6 packages
Last checked
2 hours ago

Tools for package owners.