mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-03 04:21:13 +00:00
* [Go] Make enums into real types, add String() This changes the generated code for enums: instead of type aliases, they're now distinct types, allowing for better type-checking. Some client code may have to be changed to add casts. Enum types now have a String() method, so they implement fmt.Stringer. An EnumValues map is now generated, in addition to the existing EnumNames map, to easily map strings to values. Generated enum files are now gofmt-clean. Fixes #5207 * use example.ColorGreen explicitly * use valid enum value in mutation test, add new test for "invalid" enum * add length check and comment
84 lines
2.2 KiB
Go
84 lines
2.2 KiB
Go
// Code generated by the FlatBuffers compiler. DO NOT EDIT.
|
|
|
|
package NamespaceA
|
|
|
|
import (
|
|
flatbuffers "github.com/google/flatbuffers/go"
|
|
|
|
NamespaceA__NamespaceB "NamespaceA/NamespaceB"
|
|
)
|
|
|
|
type TableInFirstNS struct {
|
|
_tab flatbuffers.Table
|
|
}
|
|
|
|
func GetRootAsTableInFirstNS(buf []byte, offset flatbuffers.UOffsetT) *TableInFirstNS {
|
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
|
x := &TableInFirstNS{}
|
|
x.Init(buf, n+offset)
|
|
return x
|
|
}
|
|
|
|
func (rcv *TableInFirstNS) Init(buf []byte, i flatbuffers.UOffsetT) {
|
|
rcv._tab.Bytes = buf
|
|
rcv._tab.Pos = i
|
|
}
|
|
|
|
func (rcv *TableInFirstNS) Table() flatbuffers.Table {
|
|
return rcv._tab
|
|
}
|
|
|
|
func (rcv *TableInFirstNS) FooTable(obj *NamespaceA__NamespaceB.TableInNestedNS) *NamespaceA__NamespaceB.TableInNestedNS {
|
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(4))
|
|
if o != 0 {
|
|
x := rcv._tab.Indirect(o + rcv._tab.Pos)
|
|
if obj == nil {
|
|
obj = new(NamespaceA__NamespaceB.TableInNestedNS)
|
|
}
|
|
obj.Init(rcv._tab.Bytes, x)
|
|
return obj
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (rcv *TableInFirstNS) FooEnum() EnumInNestedNS {
|
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(6))
|
|
if o != 0 {
|
|
return EnumInNestedNS(rcv._tab.GetInt8(o + rcv._tab.Pos))
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (rcv *TableInFirstNS) MutateFooEnum(n EnumInNestedNS) bool {
|
|
return rcv._tab.MutateInt8Slot(6, int8(n))
|
|
}
|
|
|
|
func (rcv *TableInFirstNS) FooStruct(obj *NamespaceA__NamespaceB.StructInNestedNS) *NamespaceA__NamespaceB.StructInNestedNS {
|
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(8))
|
|
if o != 0 {
|
|
x := o + rcv._tab.Pos
|
|
if obj == nil {
|
|
obj = new(NamespaceA__NamespaceB.StructInNestedNS)
|
|
}
|
|
obj.Init(rcv._tab.Bytes, x)
|
|
return obj
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func TableInFirstNSStart(builder *flatbuffers.Builder) {
|
|
builder.StartObject(3)
|
|
}
|
|
func TableInFirstNSAddFooTable(builder *flatbuffers.Builder, fooTable flatbuffers.UOffsetT) {
|
|
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(fooTable), 0)
|
|
}
|
|
func TableInFirstNSAddFooEnum(builder *flatbuffers.Builder, fooEnum int8) {
|
|
builder.PrependInt8Slot(1, fooEnum, 0)
|
|
}
|
|
func TableInFirstNSAddFooStruct(builder *flatbuffers.Builder, fooStruct flatbuffers.UOffsetT) {
|
|
builder.PrependStructSlot(2, flatbuffers.UOffsetT(fooStruct), 0)
|
|
}
|
|
func TableInFirstNSEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
|
return builder.EndObject()
|
|
}
|