initial commit
This commit is contained in:
75
internal/encoding/fbs/Category.go
Normal file
75
internal/encoding/fbs/Category.go
Normal file
@ -0,0 +1,75 @@
|
||||
// Code generated by the FlatBuffers compiler. DO NOT EDIT.
|
||||
|
||||
package fbs
|
||||
|
||||
import (
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
)
|
||||
|
||||
type Category struct {
|
||||
_tab flatbuffers.Table
|
||||
}
|
||||
|
||||
func GetRootAsCategory(buf []byte, offset flatbuffers.UOffsetT) *Category {
|
||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||
x := &Category{}
|
||||
x.Init(buf, n+offset)
|
||||
return x
|
||||
}
|
||||
|
||||
func FinishCategoryBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
||||
builder.Finish(offset)
|
||||
}
|
||||
|
||||
func GetSizePrefixedRootAsCategory(buf []byte, offset flatbuffers.UOffsetT) *Category {
|
||||
n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:])
|
||||
x := &Category{}
|
||||
x.Init(buf, n+offset+flatbuffers.SizeUint32)
|
||||
return x
|
||||
}
|
||||
|
||||
func FinishSizePrefixedCategoryBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
||||
builder.FinishSizePrefixed(offset)
|
||||
}
|
||||
|
||||
func (rcv *Category) Init(buf []byte, i flatbuffers.UOffsetT) {
|
||||
rcv._tab.Bytes = buf
|
||||
rcv._tab.Pos = i
|
||||
}
|
||||
|
||||
func (rcv *Category) Table() flatbuffers.Table {
|
||||
return rcv._tab
|
||||
}
|
||||
|
||||
func (rcv *Category) Id() int64 {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
|
||||
if o != 0 {
|
||||
return rcv._tab.GetInt64(o + rcv._tab.Pos)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (rcv *Category) MutateId(n int64) bool {
|
||||
return rcv._tab.MutateInt64Slot(4, n)
|
||||
}
|
||||
|
||||
func (rcv *Category) Name() []byte {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
||||
if o != 0 {
|
||||
return rcv._tab.ByteVector(o + rcv._tab.Pos)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func CategoryStart(builder *flatbuffers.Builder) {
|
||||
builder.StartObject(2)
|
||||
}
|
||||
func CategoryAddId(builder *flatbuffers.Builder, id int64) {
|
||||
builder.PrependInt64Slot(0, id, 0)
|
||||
}
|
||||
func CategoryAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(name), 0)
|
||||
}
|
||||
func CategoryEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||
return builder.EndObject()
|
||||
}
|
||||
216
internal/encoding/fbs/GoodItem.go
Normal file
216
internal/encoding/fbs/GoodItem.go
Normal file
@ -0,0 +1,216 @@
|
||||
// Code generated by the FlatBuffers compiler. DO NOT EDIT.
|
||||
|
||||
package fbs
|
||||
|
||||
import (
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
)
|
||||
|
||||
type GoodItem struct {
|
||||
_tab flatbuffers.Table
|
||||
}
|
||||
|
||||
func GetRootAsGoodItem(buf []byte, offset flatbuffers.UOffsetT) *GoodItem {
|
||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||
x := &GoodItem{}
|
||||
x.Init(buf, n+offset)
|
||||
return x
|
||||
}
|
||||
|
||||
func FinishGoodItemBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
||||
builder.Finish(offset)
|
||||
}
|
||||
|
||||
func GetSizePrefixedRootAsGoodItem(buf []byte, offset flatbuffers.UOffsetT) *GoodItem {
|
||||
n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:])
|
||||
x := &GoodItem{}
|
||||
x.Init(buf, n+offset+flatbuffers.SizeUint32)
|
||||
return x
|
||||
}
|
||||
|
||||
func FinishSizePrefixedGoodItemBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
||||
builder.FinishSizePrefixed(offset)
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Init(buf []byte, i flatbuffers.UOffsetT) {
|
||||
rcv._tab.Bytes = buf
|
||||
rcv._tab.Pos = i
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Table() flatbuffers.Table {
|
||||
return rcv._tab
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Sku() []byte {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
|
||||
if o != 0 {
|
||||
return rcv._tab.ByteVector(o + rcv._tab.Pos)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Photo() []byte {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
||||
if o != 0 {
|
||||
return rcv._tab.ByteVector(o + rcv._tab.Pos)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Name() []byte {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
|
||||
if o != 0 {
|
||||
return rcv._tab.ByteVector(o + rcv._tab.Pos)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Description() []byte {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(10))
|
||||
if o != 0 {
|
||||
return rcv._tab.ByteVector(o + rcv._tab.Pos)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Category() []byte {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(12))
|
||||
if o != 0 {
|
||||
return rcv._tab.ByteVector(o + rcv._tab.Pos)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Type() []byte {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(14))
|
||||
if o != 0 {
|
||||
return rcv._tab.ByteVector(o + rcv._tab.Pos)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Producer() []byte {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(16))
|
||||
if o != 0 {
|
||||
return rcv._tab.ByteVector(o + rcv._tab.Pos)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Pack() int16 {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(18))
|
||||
if o != 0 {
|
||||
return rcv._tab.GetInt16(o + rcv._tab.Pos)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) MutatePack(n int16) bool {
|
||||
return rcv._tab.MutateInt16Slot(18, n)
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Step() int16 {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(20))
|
||||
if o != 0 {
|
||||
return rcv._tab.GetInt16(o + rcv._tab.Pos)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) MutateStep(n int16) bool {
|
||||
return rcv._tab.MutateInt16Slot(20, n)
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Price() float32 {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(22))
|
||||
if o != 0 {
|
||||
return rcv._tab.GetFloat32(o + rcv._tab.Pos)
|
||||
}
|
||||
return 0.0
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) MutatePrice(n float32) bool {
|
||||
return rcv._tab.MutateFloat32Slot(22, n)
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Tariff() float32 {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(24))
|
||||
if o != 0 {
|
||||
return rcv._tab.GetFloat32(o + rcv._tab.Pos)
|
||||
}
|
||||
return 0.0
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) MutateTariff(n float32) bool {
|
||||
return rcv._tab.MutateFloat32Slot(24, n)
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Cart() int64 {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(26))
|
||||
if o != 0 {
|
||||
return rcv._tab.GetInt64(o + rcv._tab.Pos)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) MutateCart(n int64) bool {
|
||||
return rcv._tab.MutateInt64Slot(26, n)
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) Stock() int16 {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(28))
|
||||
if o != 0 {
|
||||
return rcv._tab.GetInt16(o + rcv._tab.Pos)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (rcv *GoodItem) MutateStock(n int16) bool {
|
||||
return rcv._tab.MutateInt16Slot(28, n)
|
||||
}
|
||||
|
||||
func GoodItemStart(builder *flatbuffers.Builder) {
|
||||
builder.StartObject(13)
|
||||
}
|
||||
func GoodItemAddSku(builder *flatbuffers.Builder, sku flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(sku), 0)
|
||||
}
|
||||
func GoodItemAddPhoto(builder *flatbuffers.Builder, photo flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(photo), 0)
|
||||
}
|
||||
func GoodItemAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(name), 0)
|
||||
}
|
||||
func GoodItemAddDescription(builder *flatbuffers.Builder, description flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(description), 0)
|
||||
}
|
||||
func GoodItemAddCategory(builder *flatbuffers.Builder, category flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(category), 0)
|
||||
}
|
||||
func GoodItemAddType(builder *flatbuffers.Builder, type_ flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(type_), 0)
|
||||
}
|
||||
func GoodItemAddProducer(builder *flatbuffers.Builder, producer flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(6, flatbuffers.UOffsetT(producer), 0)
|
||||
}
|
||||
func GoodItemAddPack(builder *flatbuffers.Builder, pack int16) {
|
||||
builder.PrependInt16Slot(7, pack, 0)
|
||||
}
|
||||
func GoodItemAddStep(builder *flatbuffers.Builder, step int16) {
|
||||
builder.PrependInt16Slot(8, step, 0)
|
||||
}
|
||||
func GoodItemAddPrice(builder *flatbuffers.Builder, price float32) {
|
||||
builder.PrependFloat32Slot(9, price, 0.0)
|
||||
}
|
||||
func GoodItemAddTariff(builder *flatbuffers.Builder, tariff float32) {
|
||||
builder.PrependFloat32Slot(10, tariff, 0.0)
|
||||
}
|
||||
func GoodItemAddCart(builder *flatbuffers.Builder, cart int64) {
|
||||
builder.PrependInt64Slot(11, cart, 0)
|
||||
}
|
||||
func GoodItemAddStock(builder *flatbuffers.Builder, stock int16) {
|
||||
builder.PrependInt16Slot(12, stock, 0)
|
||||
}
|
||||
func GoodItemEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||
return builder.EndObject()
|
||||
}
|
||||
75
internal/encoding/fbs/GoodsItem.go
Normal file
75
internal/encoding/fbs/GoodsItem.go
Normal file
@ -0,0 +1,75 @@
|
||||
// Code generated by the FlatBuffers compiler. DO NOT EDIT.
|
||||
|
||||
package fbs
|
||||
|
||||
import (
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
)
|
||||
|
||||
type GoodItems struct {
|
||||
_tab flatbuffers.Table
|
||||
}
|
||||
|
||||
func GetRootAsGoodItems(buf []byte, offset flatbuffers.UOffsetT) *GoodItems {
|
||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||
x := &GoodItems{}
|
||||
x.Init(buf, n+offset)
|
||||
return x
|
||||
}
|
||||
|
||||
func FinishGoodItemsBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
||||
builder.Finish(offset)
|
||||
}
|
||||
|
||||
func GetSizePrefixedRootAsGoodItems(buf []byte, offset flatbuffers.UOffsetT) *GoodItems {
|
||||
n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:])
|
||||
x := &GoodItems{}
|
||||
x.Init(buf, n+offset+flatbuffers.SizeUint32)
|
||||
return x
|
||||
}
|
||||
|
||||
func FinishSizePrefixedGoodItemsBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
|
||||
builder.FinishSizePrefixed(offset)
|
||||
}
|
||||
|
||||
func (rcv *GoodItems) Init(buf []byte, i flatbuffers.UOffsetT) {
|
||||
rcv._tab.Bytes = buf
|
||||
rcv._tab.Pos = i
|
||||
}
|
||||
|
||||
func (rcv *GoodItems) Table() flatbuffers.Table {
|
||||
return rcv._tab
|
||||
}
|
||||
|
||||
func (rcv *GoodItems) Items(obj *GoodItem, j int) bool {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
|
||||
if o != 0 {
|
||||
x := rcv._tab.Vector(o)
|
||||
x += flatbuffers.UOffsetT(j) * 4
|
||||
x = rcv._tab.Indirect(x)
|
||||
obj.Init(rcv._tab.Bytes, x)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (rcv *GoodItems) ItemsLength() int {
|
||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
|
||||
if o != 0 {
|
||||
return rcv._tab.VectorLen(o)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func GoodItemsStart(builder *flatbuffers.Builder) {
|
||||
builder.StartObject(1)
|
||||
}
|
||||
func GoodItemsAddItems(builder *flatbuffers.Builder, items flatbuffers.UOffsetT) {
|
||||
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(items), 0)
|
||||
}
|
||||
func GoodItemsStartItemsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||
return builder.StartVector(4, numElems, 4)
|
||||
}
|
||||
func GoodItemsEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||
return builder.EndObject()
|
||||
}
|
||||
140
internal/encoding/fbs/helpers.go
Normal file
140
internal/encoding/fbs/helpers.go
Normal file
@ -0,0 +1,140 @@
|
||||
package fbs
|
||||
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"git.loyso.art/frx/eway/internal/entity"
|
||||
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
)
|
||||
|
||||
var builderPool = sync.Pool{
|
||||
New: func() any {
|
||||
builder := flatbuffers.NewBuilder(1024)
|
||||
return builder
|
||||
},
|
||||
}
|
||||
|
||||
func getBuilder() *flatbuffers.Builder {
|
||||
builder := builderPool.Get().(*flatbuffers.Builder)
|
||||
return builder
|
||||
}
|
||||
|
||||
func putBuilder(builder *flatbuffers.Builder) {
|
||||
builder.Reset()
|
||||
builderPool.Put(builder)
|
||||
}
|
||||
|
||||
func MakeDomainGoodItems(in ...entity.GoodsItem) []byte {
|
||||
builder := getBuilder()
|
||||
defer putBuilder(builder)
|
||||
|
||||
offsets := make([]flatbuffers.UOffsetT, 0, len(in))
|
||||
for _, item := range in {
|
||||
inFB := makeDomainGoodItem(builder, item)
|
||||
offsets = append(offsets, inFB)
|
||||
}
|
||||
|
||||
GoodItemsStartItemsVector(builder, len(offsets))
|
||||
for i := len(offsets) - 1; i >= 0; i-- {
|
||||
builder.PrependUOffsetT(offsets[i])
|
||||
}
|
||||
goodItemsVec := builder.EndVector(len(offsets))
|
||||
|
||||
GoodItemsStart(builder)
|
||||
GoodItemsAddItems(builder, goodItemsVec)
|
||||
out := GoodItemsEnd(builder)
|
||||
builder.Finish(out)
|
||||
return builder.FinishedBytes()
|
||||
}
|
||||
|
||||
func MakeDomainGoodItemFinished(in entity.GoodsItem) []byte {
|
||||
builder := getBuilder()
|
||||
defer putBuilder(builder)
|
||||
|
||||
item := makeDomainGoodItem(builder, in)
|
||||
builder.Finish(item)
|
||||
|
||||
return builder.FinishedBytes()
|
||||
}
|
||||
|
||||
func makeDomainGoodItem(builder *flatbuffers.Builder, in entity.GoodsItem) flatbuffers.UOffsetT {
|
||||
sku := builder.CreateString(in.Articul)
|
||||
photo := builder.CreateString(in.Photo)
|
||||
name := builder.CreateString(in.Name)
|
||||
desc := builder.CreateString(in.Description)
|
||||
var cat flatbuffers.UOffsetT
|
||||
if in.Category != "" {
|
||||
cat = builder.CreateString(in.Category)
|
||||
}
|
||||
t := builder.CreateString(in.Type)
|
||||
producer := builder.CreateString(in.Producer)
|
||||
|
||||
GoodItemStart(builder)
|
||||
GoodItemAddSku(builder, sku)
|
||||
GoodItemAddPhoto(builder, photo)
|
||||
GoodItemAddName(builder, name)
|
||||
GoodItemAddDescription(builder, desc)
|
||||
if in.Category != "" {
|
||||
GoodItemAddCategory(builder, cat)
|
||||
}
|
||||
GoodItemAddType(builder, t)
|
||||
GoodItemAddProducer(builder, producer)
|
||||
GoodItemAddPack(builder, int16(in.Pack))
|
||||
GoodItemAddStep(builder, int16(in.Step))
|
||||
GoodItemAddPrice(builder, float32(in.Price))
|
||||
GoodItemAddTariff(builder, float32(in.TariffPrice))
|
||||
GoodItemAddCart(builder, int64(in.Cart))
|
||||
GoodItemAddStock(builder, int16(in.Stock))
|
||||
|
||||
return GoodItemEnd(builder)
|
||||
}
|
||||
|
||||
func ParseGoodsItem(data []byte) (item entity.GoodsItem) {
|
||||
itemFBS := GetRootAsGoodItem(data, 0)
|
||||
item.Articul = string(itemFBS.Sku())
|
||||
item.Photo = string(itemFBS.Photo())
|
||||
item.Name = string(itemFBS.Name())
|
||||
item.Description = string(itemFBS.Description())
|
||||
if value := itemFBS.Category(); value != nil {
|
||||
item.Category = string(value)
|
||||
}
|
||||
item.Type = string(itemFBS.Type())
|
||||
item.Producer = string(itemFBS.Producer())
|
||||
item.Pack = int(itemFBS.Pack())
|
||||
item.Step = int(itemFBS.Step())
|
||||
item.Price = float64(itemFBS.Price())
|
||||
item.TariffPrice = float64(itemFBS.Tariff())
|
||||
item.Cart = itemFBS.Cart()
|
||||
item.Stock = int(itemFBS.Stock())
|
||||
|
||||
return item
|
||||
}
|
||||
|
||||
func ParseCategory(data []byte) (category entity.Category) {
|
||||
categoryFBS := GetRootAsCategory(data, 0)
|
||||
category.ID = categoryFBS.Id()
|
||||
category.Name = string(categoryFBS.Name())
|
||||
|
||||
return category
|
||||
}
|
||||
|
||||
func MakeCategoryFinished(category entity.Category) []byte {
|
||||
builder := getBuilder()
|
||||
defer putBuilder(builder)
|
||||
|
||||
offset := makeCategory(builder, category)
|
||||
builder.Finish(offset)
|
||||
|
||||
return builder.FinishedBytes()
|
||||
}
|
||||
|
||||
func makeCategory(builder *flatbuffers.Builder, category entity.Category) flatbuffers.UOffsetT {
|
||||
name := builder.CreateString(category.Name)
|
||||
|
||||
CategoryStart(builder)
|
||||
CategoryAddId(builder, category.ID)
|
||||
CategoryAddName(builder, name)
|
||||
|
||||
return CategoryEnd(builder)
|
||||
}
|
||||
Reference in New Issue
Block a user