mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-22 10:18:52 +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
@@ -2,7 +2,46 @@
|
||||
|
||||
package Example
|
||||
|
||||
import "strconv"
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
)
|
||||
|
||||
type AnyAmbiguousAliasesT struct {
|
||||
Type AnyAmbiguousAliases
|
||||
Value interface{}
|
||||
}
|
||||
|
||||
func AnyAmbiguousAliasesPack(builder *flatbuffers.Builder, t *AnyAmbiguousAliasesT) flatbuffers.UOffsetT {
|
||||
if t == nil {
|
||||
return 0
|
||||
}
|
||||
switch t.Type {
|
||||
case AnyAmbiguousAliasesM1:
|
||||
return MonsterPack(builder, t.Value.(*MonsterT))
|
||||
case AnyAmbiguousAliasesM2:
|
||||
return MonsterPack(builder, t.Value.(*MonsterT))
|
||||
case AnyAmbiguousAliasesM3:
|
||||
return MonsterPack(builder, t.Value.(*MonsterT))
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func AnyAmbiguousAliasesUnPack(t AnyAmbiguousAliases, table flatbuffers.Table) *AnyAmbiguousAliasesT {
|
||||
switch t {
|
||||
case AnyAmbiguousAliasesM1:
|
||||
x := Monster{_tab: table}
|
||||
return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM1, Value: x.UnPack() }
|
||||
case AnyAmbiguousAliasesM2:
|
||||
x := Monster{_tab: table}
|
||||
return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM2, Value: x.UnPack() }
|
||||
case AnyAmbiguousAliasesM3:
|
||||
x := Monster{_tab: table}
|
||||
return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM3, Value: x.UnPack() }
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type AnyAmbiguousAliases byte
|
||||
|
||||
|
||||
Reference in New Issue
Block a user