parser

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2023 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateTemplate

func GenerateTemplate(fPath, tempFile, tempName string, data interface{}, funcMap template.FuncMap) error

func ParsePbFile

func ParsePbFile(inputPath string, src interface{}, xxxSkip []string) (areas []textArea, err error)

func ParseTemplateToFile

func ParseTemplateToFile(pd *ProtoData, basePath, tempDir, tempName string, funcMap template.FuncMap) error

func SearchImportPb

func SearchImportPb(impPath string) string

func Struct2map

func Struct2map(data interface{}) (map[string]interface{}, error)

func WritePbFile

func WritePbFile(inputPath string, areas []textArea, removeTagComment bool) (err error)

Types

type Enum

type Enum struct {
	Name          string
	EnumFieldList []*proto.EnumField
}

type ListReqOption

type ListReqOption struct {
	ReqName      string // the name of request
	EnumName     string
	EnumFieldMap map[string]string
}

type Message

type Message struct {
	Name      string
	FieldList []*MessageField
}

type MessageField

type MessageField struct {
	*proto.MapField
	*proto.NormalField
	*Message
}

type ProtoData

type ProtoData struct {
	GoVersion    string
	Ports        []int
	StartErrCode int

	FilePath         string
	PackageName      string
	Options          map[string]string
	ImportMap        map[string]bool
	ServiceImportMap map[string][]string
	ListOptionMap    map[string]*ListReqOption
	ServiceList      []*Service
	ErrCodeList      []Enum
	ModelList        []*proto.Message
	MessageList      []*Message
}

func NewProtoData

func NewProtoData() *ProtoData

func ParseProto

func ParseProto(protoFilepath string) (*ProtoData, error)

type ProtoVisitor

type ProtoVisitor struct {
	//proto.Visitor
	//proto.RPC
	Name          string
	EnumFieldList []*proto.EnumField
	Message       *Message
}

func (*ProtoVisitor) VisitComment

func (p *ProtoVisitor) VisitComment(e *proto.Comment)

func (*ProtoVisitor) VisitEnum

func (p *ProtoVisitor) VisitEnum(e *proto.Enum)

func (*ProtoVisitor) VisitEnumField

func (p *ProtoVisitor) VisitEnumField(i *proto.EnumField)

func (*ProtoVisitor) VisitExtensions

func (p *ProtoVisitor) VisitExtensions(e *proto.Extensions)

func (*ProtoVisitor) VisitGroup

func (p *ProtoVisitor) VisitGroup(g *proto.Group)

func (*ProtoVisitor) VisitImport

func (p *ProtoVisitor) VisitImport(i *proto.Import)

func (*ProtoVisitor) VisitMapField

func (p *ProtoVisitor) VisitMapField(f *proto.MapField)

func (*ProtoVisitor) VisitMessage

func (p *ProtoVisitor) VisitMessage(m *proto.Message)

func (*ProtoVisitor) VisitNormalField

func (p *ProtoVisitor) VisitNormalField(i *proto.NormalField)

func (*ProtoVisitor) VisitOneof

func (p *ProtoVisitor) VisitOneof(o *proto.Oneof)

func (*ProtoVisitor) VisitOneofField

func (p *ProtoVisitor) VisitOneofField(o *proto.OneOfField)

func (*ProtoVisitor) VisitOption

func (p *ProtoVisitor) VisitOption(o *proto.Option)

func (*ProtoVisitor) VisitPackage

func (p *ProtoVisitor) VisitPackage(pkg *proto.Package)

func (*ProtoVisitor) VisitRPC

func (p *ProtoVisitor) VisitRPC(rpc *proto.RPC)

func (*ProtoVisitor) VisitReserved

func (p *ProtoVisitor) VisitReserved(rs *proto.Reserved)

func (*ProtoVisitor) VisitService

func (p *ProtoVisitor) VisitService(v *proto.Service)

func (*ProtoVisitor) VisitSyntax

func (p *ProtoVisitor) VisitSyntax(s *proto.Syntax)

type RpcMethod

type RpcMethod struct {
	Name         string
	RequestType  string
	ResponseType string
	//StreamRequest	bool
	//StreamResponse	bool
	//Comment
	CmdID    string
	Url      string
	Flags    string
	UserType string
	PermList []string
	Options  map[string]string

	CommentLines []string
}

type Service

type Service struct {
	ServiceName string
	RpcList     []*RpcMethod
}

Jump to

Keyboard shortcuts

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