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.