Documentation ¶
Index ¶
- Constants
- Variables
- func AddHadderStructCache(name string, typeTab *TypeTable, s *TypeDefine)
- func FetchDefaultValue(fieldType string) (ret string)
- func InitBuiltinTypes(typeTab *TypeTable)
- func LanguagePrimitive(fieldType string, lanType string) string
- func ParseBool(s string) (bool, error)
- func PrimitiveExists(fieldType string) bool
- type Cell
- type DataRow
- type DataTable
- func (self *DataTable) AddCell(row int) *Cell
- func (self *DataTable) AddRow() (row int)
- func (self *DataTable) ArrayFieldCount(field *HeaderField) (ret int)
- func (self *DataTable) DataRowIndex() (ret []int)
- func (self *DataTable) GetCell(row, col int) *Cell
- func (self *DataTable) GetValueByName(row int, name string) *Cell
- func (self *DataTable) HeaderByColumn(col int) *HeaderField
- func (self *DataTable) HeaderByName(name string) *HeaderField
- func (self *DataTable) MustGetCell(row, col int) *Cell
- func (self *DataTable) MustGetHeader(col int) (header *HeaderField)
- func (self *DataTable) String() string
- type DataTableList
- type FieldType
- type Globals
- type HeaderField
- type HeaderStruct
- type IndexDefine
- type TableKind
- type TagAction
- type TypeData
- type TypeDefine
- type TypeTable
- func (self *TypeTable) AddField(tf *TypeDefine, data *DataTable, row int)
- func (self *TypeTable) AllFieldByName(objectType string) (ret []*TypeDefine)
- func (self *TypeTable) AllFields() (ret []*TypeDefine)
- func (self *TypeTable) EnumNames() (ret []string)
- func (self *TypeTable) FieldByName(objectType, name string) (ret *TypeDefine)
- func (self *TypeTable) GetEnumValue(objectType, value string) *TypeData
- func (self *TypeTable) IsEnumKind(objectType string) bool
- func (self *TypeTable) ObjectExists(objectType string) bool
- func (self *TypeTable) Print()
- func (self *TypeTable) Raw() []*TypeData
- func (self *TypeTable) ResolveEnum(objectType, value string) *TypeData
- func (self *TypeTable) ResolveEnumValue(objectType, value string) string
- func (self *TypeTable) StructNames() (ret []string)
- func (self *TypeTable) ToJSON() []byte
- type TypeUsage
Constants ¶
View Source
const ( ActionNoGenFieldJson = "nogenfield_json" ActionNoGenFieldJsonDir = "nogenfield_jsondir" ActionNoGenFieldBinary = "nogenfield_binary" ActionNoGenFieldPbBinary = "nogenfield_pbbin" ActionNoGennFieldLua = "nogenfield_lua" ActionNoGennFieldCsharp = "nogenfield_csharp" ActionNoGenTable = "nogentab" )
Variables ¶
View Source
var ( FieldTypes = []*FieldType{ {"int16", "int16", "Int16", "int", "int32", "0"}, {"int32", "int32", "Int32", "int", "int32", "0"}, {"int64", "int64", "Int64", "long", "int64", "0"}, {"int", "int32", "Int32", "int", "int32", "0"}, {"uint", "uint32", "UInt32", "int", "uint32", "0"}, {"uint16", "uint16", "UInt16", "int", "uint32", "0"}, {"uint32", "uint32", "UInt32", "int", "uint32", "0"}, {"uint64", "uint64", "UInt64", "long", "uint64", "0"}, {"float", "float32", "float", "float", "float", "0"}, {"double", "float64", "double", "double", "double", "0"}, {"float32", "float32", "float", "float", "float", "0"}, {"float64", "float64", "double", "double", "double", "0"}, {"bool", "bool", "bool", "boolean", "bool", "FALSE"}, {"string", "string", "string", "String", "string", ""}, } FieldTypeByType = map[string]*FieldType{} )
View Source
var BuiltinSymbolsVisible bool
View Source
var HadderStructCache = make(map[string]*HeaderStruct)
HadderStructCache 表头结构缓存
Functions ¶
func AddHadderStructCache ¶
func AddHadderStructCache(name string, typeTab *TypeTable, s *TypeDefine)
AddHadderStructCache 添加表头结构数据
func LanguagePrimitive ¶
将类型转为对应语言的原始类型
Types ¶
type Cell ¶
type DataTable ¶
type DataTable struct { HeaderType string // 表名,Index表里定义的类型 OriginalHeaderType string // HeaderFields对应的ObjectType,KV表为TableField FileName string SheetName string Rows []*DataRow // 0下标为表头数据 Headers []*HeaderField }
表格的完整数据,表头有屏蔽时,对应行值为空
func NewDataTable ¶
func NewDataTable() *DataTable
func (*DataTable) ArrayFieldCount ¶
func (self *DataTable) ArrayFieldCount(field *HeaderField) (ret int)
重复列在表中的索引, 相对于重复列的数量
func (*DataTable) GetValueByName ¶
根据列头找到该行对应的值
func (*DataTable) HeaderByColumn ¶
func (self *DataTable) HeaderByColumn(col int) *HeaderField
func (*DataTable) HeaderByName ¶
func (self *DataTable) HeaderByName(name string) *HeaderField
func (*DataTable) MustGetCell ¶
func (*DataTable) MustGetHeader ¶
func (self *DataTable) MustGetHeader(col int) (header *HeaderField)
type DataTableList ¶
type DataTableList struct {
// contains filtered or unexported fields
}
func (*DataTableList) AddDataTable ¶
func (self *DataTableList) AddDataTable(t *DataTable)
func (*DataTableList) AllTables ¶
func (self *DataTableList) AllTables() []*DataTable
func (*DataTableList) Count ¶
func (self *DataTableList) Count() int
func (*DataTableList) GetDataTable ¶
func (self *DataTableList) GetDataTable(headerType string) *DataTable
type Globals ¶
type Globals struct { Version string // 工具版本号 IndexFile string // 指示文件 PackageName string // 文件生成时的包名 CombineStructName string // 包含最终表所有数据的根结构 IndexGetter helper.FileGetter // 索引文件获取器 TableGetter helper.FileGetter // 其他文件获取器 IndexList []*IndexDefine // 输入的索引文件 Types *TypeTable // 输入的类型及符号 Datas DataTableList // 输出的字符串格式的数据表 GenBinary bool TagActions []TagAction // 用tag选中目标, 做action ParaLoading bool CacheDir string }
func NewGlobals ¶
func NewGlobals() *Globals
func (*Globals) CanDoAction ¶
type HeaderField ¶
type HeaderField struct { Cell *Cell // 表头单元格内容 TypeInfo *TypeDefine // 在类型表中找到对应的类型信息 }
type HeaderStruct ¶
type HeaderStruct struct { Name string // 表头结构体名 TypeInfo map[string]*TypeDefine // 字段 TypeTab *TypeTable }
type IndexDefine ¶
type IndexDefine struct { Kind TableKind `tb_name:"模式"` TableType string `tb_name:"表类型"` TableFileName string `tb_name:"表文件名"` Tags []string `tb_name:"标记"` // | 分割 }
func (*IndexDefine) ContainTag ¶
func (self *IndexDefine) ContainTag(tag string) bool
type TypeData ¶
type TypeData struct { Define *TypeDefine Tab *DataTable // 类型引用的表 Row int // 类型引用的原始数据(DataTable)中的行 }
type TypeDefine ¶
type TypeDefine struct { Kind TypeUsage `tb_name:"种类"` ObjectType string `tb_name:"对象类型"` Name string `tb_name:"标识名"` FieldName string `tb_name:"字段名"` Note string `tb_name:"备注"` FieldType string `tb_name:"字段类型"` Value string `tb_name:"值" json:",omitempty"` ArraySplitter string `tb_name:"数组切割" json:",omitempty"` MakeIndex bool `tb_name:"索引" json:",omitempty"` Tags []string `tb_name:"标记" json:",omitempty"` IsBuiltin bool `json:",omitempty"` }
这里每加一个字段, 需要在InitBuiltinTypes中定义表的解析方式
func (*TypeDefine) ContainTag ¶
func (self *TypeDefine) ContainTag(tag string) bool
func (*TypeDefine) IsArray ¶
func (self *TypeDefine) IsArray() bool
type TypeTable ¶
type TypeTable struct {
// contains filtered or unexported fields
}
func NewSymbolTable ¶
func NewSymbolTable() *TypeTable
func (*TypeTable) AddField ¶
func (self *TypeTable) AddField(tf *TypeDefine, data *DataTable, row int)
refData,类型表对应源表的位置信息
func (*TypeTable) AllFieldByName ¶
func (self *TypeTable) AllFieldByName(objectType string) (ret []*TypeDefine)
对象的所有字段
func (*TypeTable) AllFields ¶
func (self *TypeTable) AllFields() (ret []*TypeDefine)
func (*TypeTable) FieldByName ¶
func (self *TypeTable) FieldByName(objectType, name string) (ret *TypeDefine)
数据表中表头对应类型表
func (*TypeTable) GetEnumValue ¶
func (*TypeTable) ObjectExists ¶
func (*TypeTable) ResolveEnum ¶
func (*TypeTable) ResolveEnumValue ¶
匹配枚举值
func (*TypeTable) StructNames ¶
Click to show internal directories.
Click to hide internal directories.