mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-11 23:40:57 +00:00
[Go] Object API support (#5339)
* start * works for current usages! * unpack: vector of struct * optimize byte slice * support nested struct * support null table * support struct * support union * update generated code * grumble * fix compiler warning * update generated code * wrap type in namespace * bug * wrap in namespace * enum byte arrays * generate struct for unions * basic testing * remove branching * fix assert * pack vector of fixed structs correctly * omit null vectors * Refactor Union Pack and UnPack methods Remove append usage to increase code efficiency when dealing with large vectors * generate goldens
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
521e255ad9
commit
32254b7acd
@@ -6,6 +6,31 @@ import (
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
)
|
||||
|
||||
type StatT struct {
|
||||
Id string
|
||||
Val int64
|
||||
Count uint16
|
||||
}
|
||||
|
||||
func StatPack(builder *flatbuffers.Builder, t *StatT) flatbuffers.UOffsetT {
|
||||
if t == nil { return 0 }
|
||||
idOffset := builder.CreateString(t.Id)
|
||||
StatStart(builder)
|
||||
StatAddId(builder, idOffset)
|
||||
StatAddVal(builder, t.Val)
|
||||
StatAddCount(builder, t.Count)
|
||||
return StatEnd(builder)
|
||||
}
|
||||
|
||||
func (rcv *Stat) UnPack() *StatT {
|
||||
if rcv == nil { return nil }
|
||||
t := &StatT{}
|
||||
t.Id = string(rcv.Id())
|
||||
t.Val = rcv.Val()
|
||||
t.Count = rcv.Count()
|
||||
return t
|
||||
}
|
||||
|
||||
type Stat struct {
|
||||
_tab flatbuffers.Table
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user