saving changes to pb
This commit is contained in:
@@ -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
117
twt-fbs/lextwt/TwtFeed.go
Normal 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()
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user