saving changes to pb

This commit is contained in:
xuu
2025-03-26 18:49:42 -06:00
parent 41aa46ce83
commit fb10041e71
18 changed files with 1021 additions and 321 deletions

View File

@@ -18,6 +18,13 @@ type TwtRegistry interface {
WriteTo(w io.Writer) (int64, error)
}
type TwtFeed interface {
Twter() *types.Twter
Preamble() lextwt.Comments
Twts() types.Twts
WriteTo(w io.Writer) (int64, error)
}
func EncodeTwt(twt types.Twt) []byte {
lx, ok := twt.(*lextwt.Twt)
if !ok {
@@ -41,7 +48,6 @@ func EncodeRegistry(lis TwtRegistry) []byte {
func createRegistry(b *flatbuffers.Builder, r TwtRegistry) flatbuffers.UOffsetT {
preamble := make([]flatbuffers.UOffsetT, len(r.Preamble()))
twters := make([]flatbuffers.UOffsetT, len(r.Twters()))
twts := make([]flatbuffers.UOffsetT, len(r.Twts()))
for i, twt := range r.Twts() {
@@ -56,16 +62,6 @@ func createRegistry(b *flatbuffers.Builder, r TwtRegistry) flatbuffers.UOffsetT
}
oTwts := b.EndVector(len(twts))
for _, twter := range r.Twters() {
twters = append(twters, createTwter(b, twter))
}
fbs.TwtRegistryStartTwtersVector(b, len(twters))
for _, offset := range twters {
b.PrependUOffsetT(offset)
}
oTwters := b.EndVector(len(r.Twters()))
for _, comment := range r.Preamble() {
preamble = append(preamble, createComment(b, comment))
}
@@ -78,11 +74,52 @@ func createRegistry(b *flatbuffers.Builder, r TwtRegistry) flatbuffers.UOffsetT
fbs.TwtRegistryStart(b)
fbs.TwtRegistryAddTwts(b, oTwts)
fbs.TwtRegistryAddTwters(b, oTwters)
fbs.TwtRegistryAddPreamble(b, oPreamble)
return fbs.TwtRegistryEnd(b)
}
func EncodeFeed(lis TwtFeed) []byte {
b := flatbuffers.NewBuilder(len(lis.Twts()))
b.Finish(createFeed(b, lis))
return b.FinishedBytes()
}
func createFeed(b *flatbuffers.Builder, r TwtFeed) flatbuffers.UOffsetT {
preamble := make([]flatbuffers.UOffsetT, len(r.Preamble()))
twts := make([]flatbuffers.UOffsetT, len(r.Twts()))
twter := createTwter(b, r.Twter())
for i, twt := range r.Twts() {
if twt, ok := twt.(*lextwt.Twt); ok {
twts[i] = createTwt(b, twt)
}
}
fbs.TwtFeedStartTwtsVector(b, len(twts))
for _, offset := range twts {
b.PrependUOffsetT(offset)
}
oTwts := b.EndVector(len(twts))
for _, comment := range r.Preamble() {
preamble = append(preamble, createComment(b, comment))
}
fbs.TwtFeedStartPreambleVector(b, len(preamble))
for _, offset := range preamble {
b.PrependUOffsetT(offset)
}
oPreamble := b.EndVector(len(preamble))
fbs.TwtFeedStart(b)
fbs.TwtFeedAddTwter(b, twter)
fbs.TwtFeedAddTwts(b, oTwts)
fbs.TwtFeedAddPreamble(b, oPreamble)
return fbs.TwtFeedEnd(b)
}
func createTwt(b *flatbuffers.Builder, twt *lextwt.Twt) flatbuffers.UOffsetT {
twter := twt.Twter()
@@ -335,14 +372,6 @@ func fromRegistry(r *fbs.TwtRegistry) TwtRegistry {
twts[len(twts)-i-1] = fromTwt(twt)
}
twters := make([]*types.Twter, r.TwtersLength())
for i := 0; i < r.TwtersLength(); i++ {
twter := &fbs.Twter{}
if r.Twters(twter, i) {
twters[len(twters)-i-1] = fromTwter(twter)
}
}
preamble := make(lextwt.Comments, r.PreambleLength())
for i := 0; i < r.PreambleLength(); i++ {
comment := &fbs.Comment{}
@@ -351,7 +380,7 @@ func fromRegistry(r *fbs.TwtRegistry) TwtRegistry {
}
}
return lextwt.NewTwtRegistry(twters, preamble, twts)
return lextwt.NewTwtRegistry(preamble, twts)
}
func fromDateTime(o *fbs.DateTime) *lextwt.DateTime {

117
twt-fbs/lextwt/TwtFeed.go Normal file
View File

@@ -0,0 +1,117 @@
// Code generated by the FlatBuffers compiler. DO NOT EDIT.
package lextwt
import (
flatbuffers "github.com/google/flatbuffers/go"
)
type TwtFeed struct {
_tab flatbuffers.Table
}
func GetRootAsTwtFeed(buf []byte, offset flatbuffers.UOffsetT) *TwtFeed {
n := flatbuffers.GetUOffsetT(buf[offset:])
x := &TwtFeed{}
x.Init(buf, n+offset)
return x
}
func FinishTwtFeedBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
builder.Finish(offset)
}
func GetSizePrefixedRootAsTwtFeed(buf []byte, offset flatbuffers.UOffsetT) *TwtFeed {
n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:])
x := &TwtFeed{}
x.Init(buf, n+offset+flatbuffers.SizeUint32)
return x
}
func FinishSizePrefixedTwtFeedBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) {
builder.FinishSizePrefixed(offset)
}
func (rcv *TwtFeed) Init(buf []byte, i flatbuffers.UOffsetT) {
rcv._tab.Bytes = buf
rcv._tab.Pos = i
}
func (rcv *TwtFeed) Table() flatbuffers.Table {
return rcv._tab
}
func (rcv *TwtFeed) Twter(obj *Twter) *Twter {
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
if o != 0 {
x := rcv._tab.Indirect(o + rcv._tab.Pos)
if obj == nil {
obj = new(Twter)
}
obj.Init(rcv._tab.Bytes, x)
return obj
}
return nil
}
func (rcv *TwtFeed) Preamble(obj *Comment, j int) bool {
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
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 *TwtFeed) PreambleLength() int {
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
if o != 0 {
return rcv._tab.VectorLen(o)
}
return 0
}
func (rcv *TwtFeed) Twts(obj *Twt, j int) bool {
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
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 *TwtFeed) TwtsLength() int {
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
if o != 0 {
return rcv._tab.VectorLen(o)
}
return 0
}
func TwtFeedStart(builder *flatbuffers.Builder) {
builder.StartObject(3)
}
func TwtFeedAddTwter(builder *flatbuffers.Builder, twter flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(twter), 0)
}
func TwtFeedAddPreamble(builder *flatbuffers.Builder, preamble flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(preamble), 0)
}
func TwtFeedStartPreambleVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func TwtFeedAddTwts(builder *flatbuffers.Builder, twts flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(twts), 0)
}
func TwtFeedStartTwtsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func TwtFeedEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
return builder.EndObject()
}

View File

@@ -61,28 +61,8 @@ func (rcv *TwtRegistry) PreambleLength() int {
return 0
}
func (rcv *TwtRegistry) Twters(obj *Twter, j int) bool {
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
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 *TwtRegistry) TwtersLength() int {
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
if o != 0 {
return rcv._tab.VectorLen(o)
}
return 0
}
func (rcv *TwtRegistry) Twts(obj *Twt, j int) bool {
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
if o != 0 {
x := rcv._tab.Vector(o)
x += flatbuffers.UOffsetT(j) * 4
@@ -94,7 +74,7 @@ func (rcv *TwtRegistry) Twts(obj *Twt, j int) bool {
}
func (rcv *TwtRegistry) TwtsLength() int {
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
if o != 0 {
return rcv._tab.VectorLen(o)
}
@@ -102,7 +82,7 @@ func (rcv *TwtRegistry) TwtsLength() int {
}
func TwtRegistryStart(builder *flatbuffers.Builder) {
builder.StartObject(3)
builder.StartObject(2)
}
func TwtRegistryAddPreamble(builder *flatbuffers.Builder, preamble flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(preamble), 0)
@@ -110,14 +90,8 @@ func TwtRegistryAddPreamble(builder *flatbuffers.Builder, preamble flatbuffers.U
func TwtRegistryStartPreambleVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func TwtRegistryAddTwters(builder *flatbuffers.Builder, twters flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(twters), 0)
}
func TwtRegistryStartTwtersVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func TwtRegistryAddTwts(builder *flatbuffers.Builder, twts flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(twts), 0)
builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(twts), 0)
}
func TwtRegistryStartTwtsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)