parse_pb

package
v1.2.12 Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var PbToGoMapping = map[string]string{
	"double":   "float64",
	"float":    "float32",
	"int32":    "int32",
	"uint32":   "uint32",
	"uint64":   "uint64",
	"sint32":   "int32",
	"sint64":   "int64",
	"fixed32":  "uint32",
	"fixed64":  "uint64",
	"sfixed32": "int32",
	"sfixed64": "int64",
	"bool":     "bool",
	"string":   "string",
	"bytes":    "[]byte",
}

Functions

func AddParseMessage

func AddParseMessage(parseMessages ...ParseMessage) options.Option

AddParseMessage 添加自定义解析message

func AddParseService

func AddParseService(parseServices ...ParseService) options.Option

AddParseService 添加自定义解析service

func ParsePb

func ParsePb(filepath string, options ...options.Option) (parser.Parser, error)

func PbTypeToGo

func PbTypeToGo(s string) string

PbTypeToGo go type 转化成 pb type

Types

type Enum

type Enum struct {
	Offset   int    // Offset: 函数起始位置
	Name     string // Name: 类型名称
	Elements map[string]*EnumElement
}

func CreateEnum

func CreateEnum(name string, offset int) *Enum

CreateEnum 创建枚举类型

func (*Enum) AddElem

func (e *Enum) AddElem(name string, offset int, index int)

type EnumElement

type EnumElement struct {
	Offset int    // Offset: 函数起始位置
	Name   string // Name: 类型名称
	Index  int    // Index: 索引
}

type File

type File struct {
	Name   string // Name: 字段名
	TypeGo string // TypeGo: 字段的原始类型
	TypePB string // TypePB: 字段在proto中的类型
}

File 字段信息

func CreateFile

func CreateFile(name string, tGo string, tPb string) *File

CreateFile 创建字段信息

type Message

type Message struct {
	Offset int              // Offset: message起始点
	Name   string           // Name: struct name
	Files  []*File          // Files: 字段信息
	Notes  []*proto.Comment // Notes: struct的注释信息,用于埋点打桩
}

Message Message对应struct

func CreateMessage

func CreateMessage(name string, offset int) *Message

func (*Message) AddFiles

func (m *Message) AddFiles(files ...*File)

type Note

type Note struct {
	IsUse bool // 判断作用域, 如果是 struct中 或者 func中代表已经使用
	*proto.Comment
}

type ParseMessage

type ParseMessage func(m *Message)

type ParseService

type ParseService func(server *Server)

type PbParseGo

type PbParseGo struct {
	PkgName  string              // PkgName: 包名
	FilePath string              // FilePath: 文件的路径
	Server   map[string]*Server  // Server: 服务器信息
	Message  map[string]*Message // Message: 消息信息
	Note     map[string]*Note    // Note: 注释信息
	Enums    map[string]*Enum    // Enums: 枚举类型
	//Server        []*Server         // Server: 解析出来function的信息
	//Message       []*Message        // Message: 解析出struct的信息
	//Note          []*Note           // Note: 其他注释
	//Enums         []*Enum           // Enum: 解析出enum的信息
	Metas         map[string]string // Metas: 其他元信息
	ParseMessages []ParseMessage
	ParseServices []ParseService
}

func CreatePbParseGo

func CreatePbParseGo() *PbParseGo

CreatePbParseGo 创建 PbParseGo

func (*PbParseGo) AddEnum

func (p *PbParseGo) AddEnum(enums ...*Enum)

AddEnum 添加枚举类型

func (*PbParseGo) AddMessages

func (p *PbParseGo) AddMessages(messages ...*Message)

AddMessages 添加message信息

func (*PbParseGo) AddNode

func (p *PbParseGo) AddNode(nodes ...*Note)

func (*PbParseGo) AddServers

func (p *PbParseGo) AddServers(servers ...*Server)

AddServers 添加server信息

func (*PbParseGo) Generate

func (p *PbParseGo) Generate() string

func (*PbParseGo) PackageName

func (p *PbParseGo) PackageName() string

type Server

type Server struct {
	Offset          int              // Offset: 函数起始位置
	Name            string           // Name: 函数名
	ServerName      string           // ServerName: server name 通过 parseFunc 绑定
	Method          string           // Method: method 通过 parseFunc 绑定
	Router          string           // Router: router 通过 parseFunc 绑定
	InputParameter  string           // InputParameter: 入参
	OutputParameter string           // OutputParameter: 出参
	Doc             []string         // Doc: 函数注释信息,可以通过自定义的 parseFunc 去进行解析
	Notes           []*proto.Comment // Notes: 函数中的注释信息,用于埋点打桩
}

func CreateServer

func CreateServer(name string, offset int, inputParameter string, outputParameter string) *Server

CreateServer 创建Server

Jump to

Keyboard shortcuts

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