Documentation ¶
Overview ¶
Package protopluginv2 provides utilities for protoc plugins.
Index ¶
- func Do(runner Runner, reader io.Reader, writer io.Writer) error
- func ReadRequest(reader io.Reader) (*plugin_go.CodeGeneratorRequest, error)
- func WriteResponse(writer io.Writer, response *plugin_go.CodeGeneratorResponse) error
- type Enum
- type Field
- type File
- type GoPackage
- type Message
- type Method
- type Runner
- type Service
- type TemplateInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Do ¶
Do is a helper function for protobuf plugins.
func main() { if err := protoplugin.Do(runner, os.Stdin, os.Stdout); err != nil { log.Fatal(err) } }
func ReadRequest ¶
func ReadRequest(reader io.Reader) (*plugin_go.CodeGeneratorRequest, error)
ReadRequest reads the request from the reader.
func WriteResponse ¶
func WriteResponse(writer io.Writer, response *plugin_go.CodeGeneratorResponse) error
WriteResponse writes the response to the writer.
Types ¶
type Enum ¶
type Enum struct { *descriptor.EnumDescriptorProto File *File // Outers is a list of outer messages if this enum is a nested type. Outers []string Index int }
Enum describes a protocol buffer enum type.
type Field ¶
type Field struct { *descriptor.FieldDescriptorProto // Message is the message type which this field belongs to. Message *Message // FieldMessage is the message type of the field. FieldMessage *Message }
Field wraps descriptor.FieldDescriptorProto for richer features.
type File ¶
type File struct { *descriptor.FileDescriptorProto GoPackage *GoPackage Messages []*Message Enums []*Enum Services []*Service TransitiveDependencies []*File }
File wraps descriptor.FileDescriptorProto for richer features.
func (*File) SerializedFileDescriptor ¶
SerializedFileDescriptor returns a gzipped marshalled representation of the FileDescriptor.
type GoPackage ¶
type GoPackage struct { Path string Name string // Alias is an alias of the package unique within the current invocation of the generator. Alias string }
GoPackage represents a golang package.
type Message ¶
type Message struct { *descriptor.DescriptorProto File *File // Outers is a list of outer messages if this message is a nested type. Outers []string Fields []*Field // Index is proto path index of this message in File. Index int }
Message describes a protocol buffer message types.
type Method ¶
type Method struct { *descriptor.MethodDescriptorProto Service *Service RequestType *Message ResponseType *Message }
Method wraps descriptor.MethodDescriptorProto for richer features.
type Runner ¶
type Runner interface {
Run(*plugin_go.CodeGeneratorRequest) *plugin_go.CodeGeneratorResponse
}
Runner runs the plugin logic.
func NewMultiRunner ¶
NewMultiRunner returns a new Runner that executes all the given Runners and merges the resulting CodeGeneratorResponses.
type Service ¶
type Service struct { *descriptor.ServiceDescriptorProto File *File Methods []*Method }
Service wraps descriptor.ServiceDescriptorProto for richer features.
type TemplateInfo ¶
TemplateInfo is the info passed to a template.