Documentation ¶
Index ¶
- Variables
- func ForeachPluginGenerators(list []string, f func(p *PluginGenerator)) error
- func LoadAllTemplate() error
- func RegPluginGenerator(pg *PluginGenerator)
- func RegTemplateFunc(name string, fm template.FuncMap)
- func RegTemplateHeader(h *TemplateDefine)
- func UtilJoinDocCommentIndent(ss []string, commentTag string, indent string) string
- type ConstValue
- type DefineST
- type DefineSTField
- type File
- type Generator
- type GeneratorConfig
- type Message
- type Parser
- type ParserConfig
- type PluginFuncAppendConstFile
- type PluginFuncAppendDefineField
- type PluginFuncAppendDefineST
- type PluginFuncAppendFile
- type PluginFuncAppendMessage
- type PluginGenerator
- type PrototypeSet
- type TemplateConfig
- type TemplateDataDefine
- type TemplateDefine
- type TmplDataConstFile
- type TmplDataConstValue
- type TmplDataDefineST
- type TmplDataDefineSTField
- type TmplDataMessage
- type TmplDataProtoFile
Constants ¶
This section is empty.
Variables ¶
View Source
var ArrGenerator = []*Generator{}
View Source
var ArrParser = []*Parser{}
View Source
var GlobalTemplateConfig = &TemplateConfig{ OverrideMap: make(map[string]string, 16), Import: make(map[string]string, 16), }
View Source
var RootTemplate *template.Template
Functions ¶
func ForeachPluginGenerators ¶ added in v0.2.0
func ForeachPluginGenerators(list []string, f func(p *PluginGenerator)) error
func LoadAllTemplate ¶ added in v0.3.0
func LoadAllTemplate() error
func RegPluginGenerator ¶ added in v0.2.0
func RegPluginGenerator(pg *PluginGenerator)
func RegTemplateFunc ¶ added in v0.3.0
func RegTemplateHeader ¶ added in v0.3.0
func RegTemplateHeader(h *TemplateDefine)
Types ¶
type ConstValue ¶
type DefineSTField ¶ added in v0.3.0
type DefineSTField struct { BuiltinType reflect.Kind `json:"builtinType,omitempty"` CustomType string `json:"customType,omitempty"` //DefineST.Name IsArray bool `json:"isArray,omitempty"` IsMap bool `json:"isMap,omitempty"` MapKey reflect.Kind `json:"mapKey,omitempty"` FromPackage string `json:"fromPackage,omitempty"` OriginalTypeStr string `json:"originalTypeStr,omitempty"` Doc []string `json:"doc,omitempty"` Comment string `json:"comment,omitempty"` Option map[string]interface{} `json:"option,omitempty"` }
type File ¶
type File struct { Name string `json:"name,omitempty"` //结构定义 DefineST []*DefineST `json:"defineST,omitempty"` //协议号定义 ProtoID map[uint32]*ConstValue `json:"protoID,omitempty"` //错误码定义 ErrCode map[uint32]*ConstValue `json:"errCode,omitempty"` //其他常量定义 Const map[uint32]*ConstValue `json:"const,omitempty"` //原型包名 PackageName string `json:"packageName,omitempty"` //原型包引用关系: 包名=>包路径 (含义由解析器确保) PackageImport map[string]string `json:"packageImport,omitempty"` Doc []string `json:"doc,omitempty"` Option map[string]interface{} `json:"option,omitempty"` }
type Generator ¶
type Generator struct { Lang string Proto string NewConfig func() GeneratorConfig Generate func(oc GeneratorConfig, pSet *PrototypeSet) error ArrTemplateDataDefine []*TemplateDataDefine }
func GetGenerator ¶ added in v0.3.0
type GeneratorConfig ¶
type GeneratorConfig interface{}
type Parser ¶
type Parser struct { Name string NewConfig func() ParserConfig Parse func(oc ParserConfig) (*PrototypeSet, error) }
type ParserConfig ¶
type ParserConfig interface{}
type PluginFuncAppendConstFile ¶ added in v0.3.0
type PluginFuncAppendConstFile func(tmplData *TmplDataConstFile, pSet *PrototypeSet)
type PluginFuncAppendDefineField ¶ added in v0.2.0
type PluginFuncAppendDefineField func(tmplData *TmplDataDefineSTField, pSet *PrototypeSet, cursor *DefineSTField)
type PluginFuncAppendDefineST ¶ added in v0.2.0
type PluginFuncAppendDefineST func(tmplData *TmplDataDefineST, pSet *PrototypeSet, cursor *DefineST)
type PluginFuncAppendFile ¶ added in v0.2.0
type PluginFuncAppendFile func(tmplData *TmplDataProtoFile, pSet *PrototypeSet, cursor *File)
type PluginFuncAppendMessage ¶ added in v0.2.0
type PluginFuncAppendMessage func(tmplData *TmplDataMessage, pSet *PrototypeSet, cursor *Message)
type PluginGenerator ¶ added in v0.2.0
type PluginGenerator struct { Name string AppendFile PluginFuncAppendFile AppendMessage PluginFuncAppendMessage AppendDefineST PluginFuncAppendDefineST AppendDefineField PluginFuncAppendDefineField AppendConstFile PluginFuncAppendConstFile }
func GetPluginGenerator ¶ added in v0.2.0
func GetPluginGenerator(name string) *PluginGenerator
type PrototypeSet ¶
type PrototypeSet struct { RootDir string `json:"rootDir,omitempty"` File map[string]*File `json:"file,omitempty"` Message map[string]*Message `json:"message,omitempty"` DefineST map[string]*DefineST `json:"defineST,omitempty"` ProtoID map[uint32]*ConstValue `json:"protoID,omitempty"` ErrCode map[uint32]*ConstValue `json:"errCode,omitempty"` }
type TemplateConfig ¶ added in v0.3.0
type TemplateDataDefine ¶ added in v0.3.0
type TemplateDataDefine struct { Name string Sample interface{} }
func ArrTemplateDataDefine ¶ added in v0.3.0
func ArrTemplateDataDefine() []*TemplateDataDefine
type TemplateDefine ¶ added in v0.3.0
type TemplateDefine struct { Name string `json:"name,omitempty"` Filepath string `json:"filepath,omitempty"` WantTemplateData string `json:"wantTemplateData,omitempty"` BuiltinTemplateText string `json:"builtinTemplateText,omitempty"` Template *template.Template `json:"template,omitempty"` ActualFilepath string `json:"actualFilepath,omitempty"` ActualTemplateText string `json:"actualTemplateText,omitempty"` }
func ArrTemplateHeader ¶ added in v0.3.0
func ArrTemplateHeader() []*TemplateDefine
func GetTemplateHeader ¶ added in v0.3.0
func GetTemplateHeader(name string) *TemplateDefine
func (*TemplateDefine) PrepareActual ¶ added in v0.3.0
func (h *TemplateDefine) PrepareActual() error
type TmplDataConstFile ¶ added in v0.3.0
type TmplDataConstFile struct { CFListProtoID []*TmplDataConstValue CFListErrorCode []*TmplDataConstValue CFListConst []*TmplDataConstValue CFOption map[string]interface{} CFPlugins map[string]interface{} //插件参数 }
内置模板参数: 常量文件
func PrepareTmplDataConstFile ¶ added in v0.3.0
func PrepareTmplDataConstFile(p *PrototypeSet) *TmplDataConstFile
原型转化模板参数基本型: 常量文件
type TmplDataConstValue ¶ added in v0.3.0
type TmplDataConstValue struct { //应该只有其中一个上游 SuperConstFile *TmplDataConstFile SuperProtoFile *TmplDataProtoFile ConstName string ConstValue uint32 ConstLineComment string ConstOption map[string]interface{} ConstPlugins map[string]interface{} //插件参数 ConstLineCommentIndent string }
内置模板参数: 常量定义
func PrepareTmplDataConstValue ¶ added in v0.3.0
func PrepareTmplDataConstValue(p *ConstValue) *TmplDataConstValue
原型转化模板参数基本型: 常量值
type TmplDataDefineST ¶ added in v0.3.0
type TmplDataDefineST struct { SuperProtoFile *TmplDataProtoFile STName string //结构名称 STDocComment []string //结构注释 STMessage *TmplDataMessage //若结构为消息时有值 STFields []*TmplDataDefineSTField STOption map[string]interface{} STPlugins map[string]interface{} //插件参数 STDocCommentIndent string //经过预处理的结构注释 }
内置模板参数: 结构定义
func PrepareTmplDataDefineST ¶ added in v0.3.0
func PrepareTmplDataDefineST(p *DefineST) *TmplDataDefineST
原型转化模板参数基本型: 结构定义
type TmplDataDefineSTField ¶ added in v0.3.0
type TmplDataDefineSTField struct { SuperDefineST *TmplDataDefineST FieldName string //字段名称 FieldDocComment []string //字段注释 FieldLineComment string //字段行尾注释 FieldTypeStr string //类型字符串, 应为输出语言整理过的类型字符串, 不应包含各类限定词或辅助描述符 FieldIsArray bool FieldIsMap bool FieldIsCustomType bool FieldValueType string //类型字符串, 同时也是Array的元素类型, 和Map的值类型, 用于生成器装填转化过的类型字符串 FieldKeyType string //Map类型的key类型字符串, 用于生成器装填转化过的类型字符串 FieldFromPackage string FieldFromPackagePrefix string FieldOriginalTypeStr string //类型的原始字符串, 应等于解析源文件的类型描述符 FieldNullable bool //可以为空, 表示可以不初始化 FieldOption map[string]interface{} FieldPlugins map[string]interface{} //插件参数 FieldDocCommentIndent string //经过预处理的字段注释 FieldLineCommentIndent string //经过预处理的行尾注释 }
内置模板参数: 字段定义
func PrepareTmplDataDefineSTField ¶ added in v0.3.0
func PrepareTmplDataDefineSTField(p *DefineSTField, name string) *TmplDataDefineSTField
原型转化模板参数基本型: 字段定义
type TmplDataMessage ¶ added in v0.3.0
type TmplDataMessage struct { //消息的结构定义 MessageDefineST *TmplDataDefineST //消息的协议号名称 MessageProtoIDName string MessageOption map[string]interface{} MessagePlugins map[string]interface{} //插件参数 }
内置模板参数: 消息定义
func PrepareTmplDataMessage ¶ added in v0.3.0
func PrepareTmplDataMessage(p *Message, df *TmplDataDefineST) *TmplDataMessage
原型转化模板参数基本型: 消息定义
type TmplDataProtoFile ¶ added in v0.3.0
type TmplDataProtoFile struct { PFName string PFDocComment []string PFListDefineST []*TmplDataDefineST PFListProtoID []*TmplDataConstValue PFListConst []*TmplDataConstValue PFOption map[string]interface{} PFPlugins map[string]interface{} //插件参数 PFPackageName string PFPackageImport map[string]string PFCodeTextDefineST []string PFDocCommentIndent string //经过预处理的文件注释 }
内置模板参数: 协议文件
func PrepareTmplDataProtoFile ¶ added in v0.3.0
func PrepareTmplDataProtoFile(f *File, pSet *PrototypeSet) *TmplDataProtoFile
原型转化模板参数基本型: 协议文件
Click to show internal directories.
Click to hide internal directories.