genproto

package module
v0.0.0-...-fd3bbe2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 22, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

README

genproto

proto

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RunPlugin

func RunPlugin(plugin Plugin)

func RunPluginFunc

func RunPluginFunc(fn func(input *Input) Output)

func TypeName

func TypeName(scope, name string) string

Types

type Context

type Context struct {
	Data interface{}
	// contains filtered or unexported fields
}

func (*Context) Enum

func (c *Context) Enum(name string) *EnumType

func (*Context) File

func (c *Context) File(name string) *FileType

func (*Context) Level

func (c *Context) Level() int

func (*Context) Message

func (c *Context) Message(name string) *MessageType

type EnumType

type EnumType struct {
	File   *FileType
	Parent *MessageType
	Proto  *descriptor.EnumDescriptorProto
	Name   string
}

func (*EnumType) BaseName

func (et *EnumType) BaseName() string

func (*EnumType) IsTop

func (et *EnumType) IsTop() bool

type FieldType

type FieldType struct {
	File       *FileType
	Message    *MessageType
	OneofGroup string
	Proto      *descriptor.FieldDescriptorProto
	Name       string
}

func (*FieldType) IsMapType

func (ft *FieldType) IsMapType(c *Context) bool

func (*FieldType) IsRepeated

func (ft *FieldType) IsRepeated() bool

type FileDependency

type FileDependency struct {
	Name     string
	IsPublic bool
}

type FileType

type FileType struct {
	Name         string
	Package      string
	Syntax       string
	Dependencies []*FileDependency
	Messages     []*MessageType
	Services     []*ServiceType
	Enums        []*EnumType
	Proto        *descriptor.FileDescriptorProto
}

func (*FileType) BaseName

func (info *FileType) BaseName() string

func (*FileType) HasDependency

func (info *FileType) HasDependency() bool

func (*FileType) HasService

func (info *FileType) HasService() bool

func (*FileType) HasTopEnum

func (info *FileType) HasTopEnum() bool

func (*FileType) HasTopMessage

func (info *FileType) HasTopMessage() bool

func (*FileType) IsProto3

func (info *FileType) IsProto3() bool

type Input

type Input struct {
	FileToGenerate []string
	ProtosVisitor
	Arguments []string
}

type MessageType

type MessageType struct {
	File         *FileType
	Parent       *MessageType
	Proto        *descriptor.DescriptorProto
	Name         string
	OneofGroups  map[string][]*FieldType
	Fields       []*FieldType
	EmbedMessage []*MessageType
	EmbedEnums   []*EnumType
}

func (*MessageType) BaseName

func (mt *MessageType) BaseName() string

func (*MessageType) IsMapEntry

func (mt *MessageType) IsMapEntry() bool

func (*MessageType) IsTop

func (mt *MessageType) IsTop() bool

type MethodType

type MethodType struct {
	File    *FileType
	Service *ServiceType
	Proto   *descriptor.MethodDescriptorProto
	Name    string
	InType  string
	OutType string
}

type Output

type Output []*OutputFile

type OutputFile

type OutputFile struct {
	Name           string
	Content        string
	InsertionPoint *string
}

type Plugin

type Plugin interface {
	Main(input *Input) Output
}

type PluginFunc

type PluginFunc func(input *Input) Output

func (PluginFunc) Main

func (f PluginFunc) Main(input *Input) Output

type ProtosVisitor

type ProtosVisitor []*descriptor.FileDescriptorProto

func SingleProtoVisitor

func SingleProtoVisitor(desc *descriptor.FileDescriptorProto) ProtosVisitor

func (ProtosVisitor) Visiting

func (w ProtosVisitor) Visiting(v Visitor) error

type ServiceType

type ServiceType struct {
	File    *FileType
	Proto   *descriptor.ServiceDescriptorProto
	Name    string
	Methods []*MethodType
}

type SilentVisitor

type SilentVisitor struct{}

func (*SilentVisitor) VisitAllBegin

func (s *SilentVisitor) VisitAllBegin(c *Context)

func (*SilentVisitor) VisitAllEnd

func (s *SilentVisitor) VisitAllEnd(c *Context) error

func (*SilentVisitor) VisitEnum

func (s *SilentVisitor) VisitEnum(c *Context, enum *EnumType) error

func (*SilentVisitor) VisitField

func (s *SilentVisitor) VisitField(c *Context, field *FieldType) error

func (*SilentVisitor) VisitFileBegin

func (s *SilentVisitor) VisitFileBegin(c *Context, file *FileType) (bool, error)

func (*SilentVisitor) VisitFileEnd

func (s *SilentVisitor) VisitFileEnd(c *Context, file *FileType) error

func (*SilentVisitor) VisitMessageBegin

func (s *SilentVisitor) VisitMessageBegin(c *Context, message *MessageType) error

func (*SilentVisitor) VisitMessageEnd

func (s *SilentVisitor) VisitMessageEnd(c *Context, message *MessageType) error

func (*SilentVisitor) VisitMethod

func (s *SilentVisitor) VisitMethod(c *Context, method *MethodType) error

func (*SilentVisitor) VisitServiceBegin

func (s *SilentVisitor) VisitServiceBegin(c *Context, service *ServiceType) error

func (*SilentVisitor) VisitServiceEnd

func (s *SilentVisitor) VisitServiceEnd(c *Context, service *ServiceType) error

type Visitor

type Visitor interface {
	VisitAllBegin(c *Context)
	VisitFileBegin(c *Context, file *FileType) (bool, error)
	VisitMessageBegin(c *Context, message *MessageType) error
	VisitField(c *Context, field *FieldType) error
	VisitMessageEnd(c *Context, message *MessageType) error
	VisitEnum(c *Context, enum *EnumType) error
	VisitServiceBegin(c *Context, service *ServiceType) error
	VisitServiceEnd(c *Context, service *ServiceType) error
	VisitMethod(c *Context, method *MethodType) error
	VisitFileEnd(c *Context, file *FileType) error
	VisitAllEnd(c *Context) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL