1 Star 0 Fork 0

jackytse / tabtoy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
gen.go 941 Bytes
一键复制 编辑 原始数据 按行查看 历史
package binpak
import (
"gitee.com/jackytse/tabtoy/v3/model"
)
func writeHeader(writer *BinaryWriter) error {
if err := writer.WriteString("TABTOY"); err != nil {
return err
}
if err := writer.WriteUInt32(3); err != nil {
return err
}
return nil
}
func Generate(globals *model.Globals) (data []byte, err error) {
totalWriter := NewBinaryWriter()
if err := writeHeader(totalWriter); err != nil {
return nil, err
}
for _, tab := range globals.Datas.AllTables() {
totalDataRow := len(tab.Rows) - 1
totalWriter.WriteUInt32(uint32(totalDataRow))
// 结构体数组
for row := 1; row < len(tab.Rows); row++ {
if swriter, err := writeStruct(globals, tab, row); err != nil {
return nil, err
} else {
structData := swriter.Bytes()
// 结构体二进制边界
totalWriter.WriteUInt32(uint32(len(structData)))
totalWriter.Write(structData)
}
}
}
data = totalWriter.Bytes()
return
}
Go
1
https://gitee.com/jackytse/tabtoy.git
git@gitee.com:jackytse/tabtoy.git
jackytse
tabtoy
tabtoy
v0.1.0

搜索帮助