mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-29 21:12:00 +00:00
Merge remote-tracking branch 'refs/remotes/google/master' into key
This commit is contained in:
@@ -1161,12 +1161,23 @@ like so:
|
|||||||
~~~{.java}
|
~~~{.java}
|
||||||
// This must be called after `finish()`.
|
// This must be called after `finish()`.
|
||||||
java.nio.ByteBuffer buf = builder.dataBuffer();
|
java.nio.ByteBuffer buf = builder.dataBuffer();
|
||||||
|
// The data in this ByteBuffer does NOT start at 0, but at buf.position().
|
||||||
|
// The number of bytes is buf.remaining().
|
||||||
|
|
||||||
|
// Alternatively this copies the above data out of the ByteBuffer for you:
|
||||||
|
bytes[] buf = builder.sizedByteArray();
|
||||||
~~~
|
~~~
|
||||||
</div>
|
</div>
|
||||||
<div class="language-csharp">
|
<div class="language-csharp">
|
||||||
~~~{.cs}
|
~~~{.cs}
|
||||||
// This must be called after `Finish()`.
|
// This must be called after `Finish()`.
|
||||||
var buf = builder.DataBuffer; // Of type `FlatBuffers.ByteBuffer`.
|
var buf = builder.DataBuffer; // Of type `FlatBuffers.ByteBuffer`.
|
||||||
|
// The data in this ByteBuffer does NOT start at 0, but at buf.Position.
|
||||||
|
// The end of the data is marked by buf.Length, so the size is
|
||||||
|
// buf.Length - buf.Position.
|
||||||
|
|
||||||
|
// Alternatively this copies the above data out of the ByteBuffer for you:
|
||||||
|
bytes[] buf = builder.SizedByteArray();
|
||||||
~~~
|
~~~
|
||||||
</div>
|
</div>
|
||||||
<div class="language-go">
|
<div class="language-go">
|
||||||
@@ -1184,13 +1195,16 @@ like so:
|
|||||||
<div class="language-javascript">
|
<div class="language-javascript">
|
||||||
~~~{.js}
|
~~~{.js}
|
||||||
// This must be called after `finish()`.
|
// This must be called after `finish()`.
|
||||||
var buf = builder.dataBuffer(); // Of type `flatbuffers.ByteBuffer`.
|
var buf = builder.asUint8Array(); // Of type `Uint8Array`.
|
||||||
~~~
|
~~~
|
||||||
</div>
|
</div>
|
||||||
<div class="language-php">
|
<div class="language-php">
|
||||||
~~~{.php}
|
~~~{.php}
|
||||||
// This must be called after `finish()`.
|
// This must be called after `finish()`.
|
||||||
$buf = $builder->dataBuffer(); // Of type `Google\FlatBuffers\ByteBuffer`
|
$buf = $builder->dataBuffer(); // Of type `Google\FlatBuffers\ByteBuffer`
|
||||||
|
// The data in this ByteBuffer does NOT start at 0, but at buf->getPosition().
|
||||||
|
// The end of the data is marked by buf->capacity(), so the size is
|
||||||
|
// buf->capacity() - buf->getPosition().
|
||||||
~~~
|
~~~
|
||||||
</div>
|
</div>
|
||||||
<div class="language-c">
|
<div class="language-c">
|
||||||
|
|||||||
@@ -153,32 +153,34 @@ inline void EndianCheck() {
|
|||||||
|
|
||||||
template<typename T> T EndianSwap(T t) {
|
template<typename T> T EndianSwap(T t) {
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#pragma push_macro("__builtin_bswap16")
|
#define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
|
||||||
#pragma push_macro("__builtin_bswap32")
|
#define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
|
||||||
#pragma push_macro("__builtin_bswap64")
|
#define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
|
||||||
#define __builtin_bswap16 _byteswap_ushort
|
#else
|
||||||
#define __builtin_bswap32 _byteswap_ulong
|
#if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
|
||||||
#define __builtin_bswap64 _byteswap_uint64
|
// __builtin_bswap16 was missing prior to GCC 4.8.
|
||||||
|
#define FLATBUFFERS_BYTESWAP16(x) \
|
||||||
|
static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
|
||||||
|
#else
|
||||||
|
#define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
|
||||||
|
#endif
|
||||||
|
#define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
|
||||||
|
#define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
|
||||||
#endif
|
#endif
|
||||||
if (sizeof(T) == 1) { // Compile-time if-then's.
|
if (sizeof(T) == 1) { // Compile-time if-then's.
|
||||||
return t;
|
return t;
|
||||||
} else if (sizeof(T) == 2) {
|
} else if (sizeof(T) == 2) {
|
||||||
auto r = __builtin_bswap16(*reinterpret_cast<uint16_t *>(&t));
|
auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t));
|
||||||
return *reinterpret_cast<T *>(&r);
|
return *reinterpret_cast<T *>(&r);
|
||||||
} else if (sizeof(T) == 4) {
|
} else if (sizeof(T) == 4) {
|
||||||
auto r = __builtin_bswap32(*reinterpret_cast<uint32_t *>(&t));
|
auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t));
|
||||||
return *reinterpret_cast<T *>(&r);
|
return *reinterpret_cast<T *>(&r);
|
||||||
} else if (sizeof(T) == 8) {
|
} else if (sizeof(T) == 8) {
|
||||||
auto r = __builtin_bswap64(*reinterpret_cast<uint64_t *>(&t));
|
auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t));
|
||||||
return *reinterpret_cast<T *>(&r);
|
return *reinterpret_cast<T *>(&r);
|
||||||
} else {
|
} else {
|
||||||
assert(0);
|
assert(0);
|
||||||
}
|
}
|
||||||
#if defined(_MSC_VER)
|
|
||||||
#pragma pop_macro("__builtin_bswap16")
|
|
||||||
#pragma pop_macro("__builtin_bswap32")
|
|
||||||
#pragma pop_macro("__builtin_bswap64")
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T> T EndianScalar(T t) {
|
template<typename T> T EndianScalar(T t) {
|
||||||
|
|||||||
@@ -133,10 +133,10 @@ inline flatbuffers::Offset<KeyValue> CreateKeyValue(flatbuffers::FlatBufferBuild
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<KeyValue> CreateKeyValue(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<KeyValue> CreateKeyValueDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const char *key = nullptr,
|
const char *key = nullptr,
|
||||||
const char *value = nullptr) {
|
const char *value = nullptr) {
|
||||||
return CreateKeyValue(_fbb, key ? 0 : _fbb.CreateString(key), value ? 0 : _fbb.CreateString(value));
|
return CreateKeyValue(_fbb, key ? _fbb.CreateString(key) : 0, value ? _fbb.CreateString(value) : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
||||||
@@ -187,11 +187,11 @@ inline flatbuffers::Offset<EnumVal> CreateEnumVal(flatbuffers::FlatBufferBuilder
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<EnumVal> CreateEnumVal(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<EnumVal> CreateEnumValDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const char *name = nullptr,
|
const char *name = nullptr,
|
||||||
int64_t value = 0,
|
int64_t value = 0,
|
||||||
flatbuffers::Offset<Object> object = 0) {
|
flatbuffers::Offset<Object> object = 0) {
|
||||||
return CreateEnumVal(_fbb, name ? 0 : _fbb.CreateString(name), value, object);
|
return CreateEnumVal(_fbb, name ? _fbb.CreateString(name) : 0, value, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Enum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
struct Enum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
||||||
@@ -260,13 +260,13 @@ inline flatbuffers::Offset<Enum> CreateEnum(flatbuffers::FlatBufferBuilder &_fbb
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Enum> CreateEnum(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<Enum> CreateEnumDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const char *name = nullptr,
|
const char *name = nullptr,
|
||||||
const std::vector<flatbuffers::Offset<EnumVal>> *values = nullptr,
|
const std::vector<flatbuffers::Offset<EnumVal>> *values = nullptr,
|
||||||
bool is_union = false,
|
bool is_union = false,
|
||||||
flatbuffers::Offset<Type> underlying_type = 0,
|
flatbuffers::Offset<Type> underlying_type = 0,
|
||||||
const std::vector<flatbuffers::Offset<KeyValue>> *attributes = nullptr) {
|
const std::vector<flatbuffers::Offset<KeyValue>> *attributes = nullptr) {
|
||||||
return CreateEnum(_fbb, name ? 0 : _fbb.CreateString(name), values ? 0 : _fbb.CreateVector<flatbuffers::Offset<EnumVal>>(*values), is_union, underlying_type, attributes ? 0 : _fbb.CreateVector<flatbuffers::Offset<KeyValue>>(*attributes));
|
return CreateEnum(_fbb, name ? _fbb.CreateString(name) : 0, values ? _fbb.CreateVector<flatbuffers::Offset<EnumVal>>(*values) : 0, is_union, underlying_type, attributes ? _fbb.CreateVector<flatbuffers::Offset<KeyValue>>(*attributes) : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Field FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
struct Field FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
||||||
@@ -362,7 +362,7 @@ inline flatbuffers::Offset<Field> CreateField(flatbuffers::FlatBufferBuilder &_f
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Field> CreateField(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<Field> CreateFieldDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const char *name = nullptr,
|
const char *name = nullptr,
|
||||||
flatbuffers::Offset<Type> type = 0,
|
flatbuffers::Offset<Type> type = 0,
|
||||||
uint16_t id = 0,
|
uint16_t id = 0,
|
||||||
@@ -373,7 +373,7 @@ inline flatbuffers::Offset<Field> CreateField(flatbuffers::FlatBufferBuilder &_f
|
|||||||
bool required = false,
|
bool required = false,
|
||||||
bool key = false,
|
bool key = false,
|
||||||
const std::vector<flatbuffers::Offset<KeyValue>> *attributes = nullptr) {
|
const std::vector<flatbuffers::Offset<KeyValue>> *attributes = nullptr) {
|
||||||
return CreateField(_fbb, name ? 0 : _fbb.CreateString(name), type, id, offset, default_integer, default_real, deprecated, required, key, attributes ? 0 : _fbb.CreateVector<flatbuffers::Offset<KeyValue>>(*attributes));
|
return CreateField(_fbb, name ? _fbb.CreateString(name) : 0, type, id, offset, default_integer, default_real, deprecated, required, key, attributes ? _fbb.CreateVector<flatbuffers::Offset<KeyValue>>(*attributes) : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Object FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
struct Object FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
||||||
@@ -446,14 +446,14 @@ inline flatbuffers::Offset<Object> CreateObject(flatbuffers::FlatBufferBuilder &
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Object> CreateObject(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<Object> CreateObjectDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const char *name = nullptr,
|
const char *name = nullptr,
|
||||||
const std::vector<flatbuffers::Offset<Field>> *fields = nullptr,
|
const std::vector<flatbuffers::Offset<Field>> *fields = nullptr,
|
||||||
bool is_struct = false,
|
bool is_struct = false,
|
||||||
int32_t minalign = 0,
|
int32_t minalign = 0,
|
||||||
int32_t bytesize = 0,
|
int32_t bytesize = 0,
|
||||||
const std::vector<flatbuffers::Offset<KeyValue>> *attributes = nullptr) {
|
const std::vector<flatbuffers::Offset<KeyValue>> *attributes = nullptr) {
|
||||||
return CreateObject(_fbb, name ? 0 : _fbb.CreateString(name), fields ? 0 : _fbb.CreateVector<flatbuffers::Offset<Field>>(*fields), is_struct, minalign, bytesize, attributes ? 0 : _fbb.CreateVector<flatbuffers::Offset<KeyValue>>(*attributes));
|
return CreateObject(_fbb, name ? _fbb.CreateString(name) : 0, fields ? _fbb.CreateVector<flatbuffers::Offset<Field>>(*fields) : 0, is_struct, minalign, bytesize, attributes ? _fbb.CreateVector<flatbuffers::Offset<KeyValue>>(*attributes) : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Schema FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
struct Schema FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
||||||
@@ -520,13 +520,13 @@ inline flatbuffers::Offset<Schema> CreateSchema(flatbuffers::FlatBufferBuilder &
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Schema> CreateSchema(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<Schema> CreateSchemaDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const std::vector<flatbuffers::Offset<Object>> *objects = nullptr,
|
const std::vector<flatbuffers::Offset<Object>> *objects = nullptr,
|
||||||
const std::vector<flatbuffers::Offset<Enum>> *enums = nullptr,
|
const std::vector<flatbuffers::Offset<Enum>> *enums = nullptr,
|
||||||
const char *file_ident = nullptr,
|
const char *file_ident = nullptr,
|
||||||
const char *file_ext = nullptr,
|
const char *file_ext = nullptr,
|
||||||
flatbuffers::Offset<Object> root_table = 0) {
|
flatbuffers::Offset<Object> root_table = 0) {
|
||||||
return CreateSchema(_fbb, objects ? 0 : _fbb.CreateVector<flatbuffers::Offset<Object>>(*objects), enums ? 0 : _fbb.CreateVector<flatbuffers::Offset<Enum>>(*enums), file_ident ? 0 : _fbb.CreateString(file_ident), file_ext ? 0 : _fbb.CreateString(file_ext), root_table);
|
return CreateSchema(_fbb, objects ? _fbb.CreateVector<flatbuffers::Offset<Object>>(*objects) : 0, enums ? _fbb.CreateVector<flatbuffers::Offset<Enum>>(*enums) : 0, file_ident ? _fbb.CreateString(file_ident) : 0, file_ext ? _fbb.CreateString(file_ext) : 0, root_table);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const reflection::Schema *GetSchema(const void *buf) { return flatbuffers::GetRoot<reflection::Schema>(buf); }
|
inline const reflection::Schema *GetSchema(const void *buf) { return flatbuffers::GetRoot<reflection::Schema>(buf); }
|
||||||
|
|||||||
@@ -238,9 +238,8 @@ flatbuffers.Builder.prototype.dataBuffer = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the ByteBuffer representing the FlatBuffer. Only call this after you've
|
* Get the bytes representing the FlatBuffer. Only call this after you've
|
||||||
* called finish(). The actual data starts at the ByteBuffer's current position,
|
* called finish().
|
||||||
* not necessarily at 0.
|
|
||||||
*
|
*
|
||||||
* @returns {Uint8Array}
|
* @returns {Uint8Array}
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -594,6 +594,8 @@ namespace FlatBuffers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// This is typically only called after you call `Finish()`.
|
/// This is typically only called after you call `Finish()`.
|
||||||
|
/// The actual data starts at the ByteBuffer's current position,
|
||||||
|
/// not necessarily at `0`.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
/// <returns>
|
/// <returns>
|
||||||
/// Returns the ByteBuffer for this FlatBuffer.
|
/// Returns the ByteBuffer for this FlatBuffer.
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<Monster> CreateMonsterDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const Vec3 *pos = 0,
|
const Vec3 *pos = 0,
|
||||||
int16_t mana = 150,
|
int16_t mana = 150,
|
||||||
int16_t hp = 100,
|
int16_t hp = 100,
|
||||||
@@ -198,7 +198,7 @@ inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder
|
|||||||
const std::vector<flatbuffers::Offset<Weapon>> *weapons = nullptr,
|
const std::vector<flatbuffers::Offset<Weapon>> *weapons = nullptr,
|
||||||
Equipment equipped_type = Equipment_NONE,
|
Equipment equipped_type = Equipment_NONE,
|
||||||
flatbuffers::Offset<void> equipped = 0) {
|
flatbuffers::Offset<void> equipped = 0) {
|
||||||
return CreateMonster(_fbb, pos, mana, hp, name ? 0 : _fbb.CreateString(name), inventory ? 0 : _fbb.CreateVector<uint8_t>(*inventory), color, weapons ? 0 : _fbb.CreateVector<flatbuffers::Offset<Weapon>>(*weapons), equipped_type, equipped);
|
return CreateMonster(_fbb, pos, mana, hp, name ? _fbb.CreateString(name) : 0, inventory ? _fbb.CreateVector<uint8_t>(*inventory) : 0, color, weapons ? _fbb.CreateVector<flatbuffers::Offset<Weapon>>(*weapons) : 0, equipped_type, equipped);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o);
|
inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o);
|
||||||
@@ -249,10 +249,10 @@ inline flatbuffers::Offset<Weapon> CreateWeapon(flatbuffers::FlatBufferBuilder &
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Weapon> CreateWeapon(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<Weapon> CreateWeaponDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const char *name = nullptr,
|
const char *name = nullptr,
|
||||||
int16_t damage = 0) {
|
int16_t damage = 0) {
|
||||||
return CreateWeapon(_fbb, name ? 0 : _fbb.CreateString(name), damage);
|
return CreateWeapon(_fbb, name ? _fbb.CreateString(name) : 0, damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Weapon> CreateWeapon(flatbuffers::FlatBufferBuilder &_fbb, const WeaponT *_o);
|
inline flatbuffers::Offset<Weapon> CreateWeapon(flatbuffers::FlatBufferBuilder &_fbb, const WeaponT *_o);
|
||||||
|
|||||||
@@ -897,11 +897,11 @@ class CppGenerator : public BaseGenerator {
|
|||||||
}
|
}
|
||||||
code += " return builder_.Finish();\n}\n\n";
|
code += " return builder_.Finish();\n}\n\n";
|
||||||
|
|
||||||
// Generate a CreateX function with vector types as parameters
|
// Generate a CreateXDirect function with vector types as parameters
|
||||||
if (gen_vector_pars) {
|
if (gen_vector_pars) {
|
||||||
code += "inline flatbuffers::Offset<" + struct_def.name + "> Create";
|
code += "inline flatbuffers::Offset<" + struct_def.name + "> Create";
|
||||||
code += struct_def.name;
|
code += struct_def.name;
|
||||||
code += "(flatbuffers::FlatBufferBuilder &_fbb";
|
code += "Direct(flatbuffers::FlatBufferBuilder &_fbb";
|
||||||
for (auto it = struct_def.fields.vec.begin();
|
for (auto it = struct_def.fields.vec.begin();
|
||||||
it != struct_def.fields.vec.end(); ++it) {
|
it != struct_def.fields.vec.end(); ++it) {
|
||||||
auto &field = **it;
|
auto &field = **it;
|
||||||
@@ -927,15 +927,16 @@ class CppGenerator : public BaseGenerator {
|
|||||||
auto &field = **it;
|
auto &field = **it;
|
||||||
if (!field.deprecated) {
|
if (!field.deprecated) {
|
||||||
if (field.value.type.base_type == BASE_TYPE_STRING) {
|
if (field.value.type.base_type == BASE_TYPE_STRING) {
|
||||||
code += ", " + field.name + " ? 0 : ";
|
code += ", " + field.name + " ? ";
|
||||||
code += "_fbb.CreateString(" + field.name + ")";
|
code += "_fbb.CreateString(" + field.name + ") : 0";
|
||||||
} else if (field.value.type.base_type == BASE_TYPE_VECTOR) {
|
} else if (field.value.type.base_type == BASE_TYPE_VECTOR) {
|
||||||
code += ", " + field.name + " ? 0 : ";
|
code += ", " + field.name + " ? ";
|
||||||
code += "_fbb.CreateVector<";
|
code += "_fbb.CreateVector<";
|
||||||
code += GenTypeWire(field.value.type.VectorType(), "", false);
|
code += GenTypeWire(field.value.type.VectorType(), "", false);
|
||||||
code += ">(*" + field.name + ")";
|
code += ">(*" + field.name + ") : 0";
|
||||||
} else
|
} else {
|
||||||
code += ", " + field.name;
|
code += ", " + field.name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
code += ");\n}\n\n";
|
code += ");\n}\n\n";
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ static void NewRootTypeFromBuffer(const StructDef &struct_def,
|
|||||||
code += " {\n";
|
code += " {\n";
|
||||||
code += "\tn := flatbuffers.GetUOffsetT(buf[offset:])\n";
|
code += "\tn := flatbuffers.GetUOffsetT(buf[offset:])\n";
|
||||||
code += "\tx := &" + struct_def.name + "{}\n";
|
code += "\tx := &" + struct_def.name + "{}\n";
|
||||||
code += "\tx.Init(buf, n + offset)\n";
|
code += "\tx.Init(buf, n+offset)\n";
|
||||||
code += "\treturn x\n";
|
code += "\treturn x\n";
|
||||||
code += "}\n\n";
|
code += "}\n\n";
|
||||||
}
|
}
|
||||||
@@ -178,9 +178,10 @@ static void GetScalarFieldOfStruct(const StructDef &struct_def,
|
|||||||
std::string getter = GenGetter(field.value.type);
|
std::string getter = GenGetter(field.value.type);
|
||||||
GenReceiver(struct_def, code_ptr);
|
GenReceiver(struct_def, code_ptr);
|
||||||
code += " " + MakeCamel(field.name);
|
code += " " + MakeCamel(field.name);
|
||||||
code += "() " + TypeName(field) + " { return " + getter;
|
code += "() " + TypeName(field) + " {\n";
|
||||||
|
code +="\treturn " + getter;
|
||||||
code += "(rcv._tab.Pos + flatbuffers.UOffsetT(";
|
code += "(rcv._tab.Pos + flatbuffers.UOffsetT(";
|
||||||
code += NumToString(field.value.offset) + ")) }\n";
|
code += NumToString(field.value.offset) + "))\n}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the value of a table's scalar.
|
// Get the value of a table's scalar.
|
||||||
@@ -212,7 +213,7 @@ static void GetStructFieldOfStruct(const StructDef &struct_def,
|
|||||||
code += "\tif obj == nil {\n";
|
code += "\tif obj == nil {\n";
|
||||||
code += "\t\tobj = new(" + TypeName(field) + ")\n";
|
code += "\t\tobj = new(" + TypeName(field) + ")\n";
|
||||||
code += "\t}\n";
|
code += "\t}\n";
|
||||||
code += "\tobj.Init(rcv._tab.Bytes, rcv._tab.Pos + ";
|
code += "\tobj.Init(rcv._tab.Bytes, rcv._tab.Pos+";
|
||||||
code += NumToString(field.value.offset) + ")";
|
code += NumToString(field.value.offset) + ")";
|
||||||
code += "\n\treturn obj\n";
|
code += "\n\treturn obj\n";
|
||||||
code += "}\n";
|
code += "}\n";
|
||||||
@@ -287,9 +288,9 @@ static void GetMemberOfVectorOfStruct(const StructDef &struct_def,
|
|||||||
if (!(vectortype.struct_def->fixed)) {
|
if (!(vectortype.struct_def->fixed)) {
|
||||||
code += "\t\tx = rcv._tab.Indirect(x)\n";
|
code += "\t\tx = rcv._tab.Indirect(x)\n";
|
||||||
}
|
}
|
||||||
code += "\tif obj == nil {\n";
|
code += "\t\tif obj == nil {\n";
|
||||||
code += "\t\tobj = new(" + TypeName(field) + ")\n";
|
code += "\t\t\tobj = new(" + TypeName(field) + ")\n";
|
||||||
code += "\t}\n";
|
code += "\t\t}\n";
|
||||||
code += "\t\tobj.Init(rcv._tab.Bytes, x)\n";
|
code += "\t\tobj.Init(rcv._tab.Bytes, x)\n";
|
||||||
code += "\t\treturn true\n\t}\n";
|
code += "\t\treturn true\n\t}\n";
|
||||||
code += "\treturn false\n";
|
code += "\treturn false\n";
|
||||||
@@ -310,7 +311,7 @@ static void GetMemberOfVectorOfNonStruct(const StructDef &struct_def,
|
|||||||
code += OffsetPrefix(field);
|
code += OffsetPrefix(field);
|
||||||
code += "\t\ta := rcv._tab.Vector(o)\n";
|
code += "\t\ta := rcv._tab.Vector(o)\n";
|
||||||
code += "\t\treturn " + GenGetter(field.value.type) + "(";
|
code += "\t\treturn " + GenGetter(field.value.type) + "(";
|
||||||
code += "a + flatbuffers.UOffsetT(j * ";
|
code += "a + flatbuffers.UOffsetT(j*";
|
||||||
code += NumToString(InlineSize(vectortype)) + "))\n";
|
code += NumToString(InlineSize(vectortype)) + "))\n";
|
||||||
code += "\t}\n";
|
code += "\t}\n";
|
||||||
if (vectortype.base_type == BASE_TYPE_STRING) {
|
if (vectortype.base_type == BASE_TYPE_STRING) {
|
||||||
@@ -326,7 +327,10 @@ static void BeginBuilderArgs(const StructDef &struct_def,
|
|||||||
std::string *code_ptr) {
|
std::string *code_ptr) {
|
||||||
std::string &code = *code_ptr;
|
std::string &code = *code_ptr;
|
||||||
|
|
||||||
code += "\n";
|
if (code.substr(code.length() - 2) != "\n\n") {
|
||||||
|
// a previous mutate has not put an extra new line
|
||||||
|
code += "\n";
|
||||||
|
}
|
||||||
code += "func Create" + struct_def.name;
|
code += "func Create" + struct_def.name;
|
||||||
code += "(builder *flatbuffers.Builder";
|
code += "(builder *flatbuffers.Builder";
|
||||||
}
|
}
|
||||||
@@ -368,20 +372,20 @@ static void StructBuilderBody(const StructDef &struct_def,
|
|||||||
const char *nameprefix,
|
const char *nameprefix,
|
||||||
std::string *code_ptr) {
|
std::string *code_ptr) {
|
||||||
std::string &code = *code_ptr;
|
std::string &code = *code_ptr;
|
||||||
code += " builder.Prep(" + NumToString(struct_def.minalign) + ", ";
|
code += "\tbuilder.Prep(" + NumToString(struct_def.minalign) + ", ";
|
||||||
code += NumToString(struct_def.bytesize) + ")\n";
|
code += NumToString(struct_def.bytesize) + ")\n";
|
||||||
for (auto it = struct_def.fields.vec.rbegin();
|
for (auto it = struct_def.fields.vec.rbegin();
|
||||||
it != struct_def.fields.vec.rend();
|
it != struct_def.fields.vec.rend();
|
||||||
++it) {
|
++it) {
|
||||||
auto &field = **it;
|
auto &field = **it;
|
||||||
if (field.padding)
|
if (field.padding)
|
||||||
code += " builder.Pad(" + NumToString(field.padding) + ")\n";
|
code += "\tbuilder.Pad(" + NumToString(field.padding) + ")\n";
|
||||||
if (IsStruct(field.value.type)) {
|
if (IsStruct(field.value.type)) {
|
||||||
StructBuilderBody(*field.value.type.struct_def,
|
StructBuilderBody(*field.value.type.struct_def,
|
||||||
(nameprefix + (field.name + "_")).c_str(),
|
(nameprefix + (field.name + "_")).c_str(),
|
||||||
code_ptr);
|
code_ptr);
|
||||||
} else {
|
} else {
|
||||||
code += " builder.Prepend" + GenMethod(field) + "(";
|
code += "\tbuilder.Prepend" + GenMethod(field) + "(";
|
||||||
code += nameprefix + MakeCamel(field.name, false) + ")\n";
|
code += nameprefix + MakeCamel(field.name, false) + ")\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -389,7 +393,7 @@ static void StructBuilderBody(const StructDef &struct_def,
|
|||||||
|
|
||||||
static void EndBuilderBody(std::string *code_ptr) {
|
static void EndBuilderBody(std::string *code_ptr) {
|
||||||
std::string &code = *code_ptr;
|
std::string &code = *code_ptr;
|
||||||
code += " return builder.Offset()\n";
|
code += "\treturn builder.Offset()\n";
|
||||||
code += "}\n";
|
code += "}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,10 +402,10 @@ static void GetStartOfTable(const StructDef &struct_def,
|
|||||||
std::string *code_ptr) {
|
std::string *code_ptr) {
|
||||||
std::string &code = *code_ptr;
|
std::string &code = *code_ptr;
|
||||||
code += "func " + struct_def.name + "Start";
|
code += "func " + struct_def.name + "Start";
|
||||||
code += "(builder *flatbuffers.Builder) { ";
|
code += "(builder *flatbuffers.Builder) {\n";
|
||||||
code += "builder.StartObject(";
|
code += "\tbuilder.StartObject(";
|
||||||
code += NumToString(struct_def.fields.vec.size());
|
code += NumToString(struct_def.fields.vec.size());
|
||||||
code += ") }\n";
|
code += ")\n}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the value of a table's field.
|
// Set the value of a table's field.
|
||||||
@@ -418,8 +422,8 @@ static void BuildFieldOfTable(const StructDef &struct_def,
|
|||||||
} else {
|
} else {
|
||||||
code += GenTypeBasic(field.value.type);
|
code += GenTypeBasic(field.value.type);
|
||||||
}
|
}
|
||||||
code += ") ";
|
code += ") {\n";
|
||||||
code += "{ builder.Prepend";
|
code += "\tbuilder.Prepend";
|
||||||
code += GenMethod(field) + "Slot(";
|
code += GenMethod(field) + "Slot(";
|
||||||
code += NumToString(offset) + ", ";
|
code += NumToString(offset) + ", ";
|
||||||
if (!IsScalar(field.value.type.base_type) && (!struct_def.fixed)) {
|
if (!IsScalar(field.value.type.base_type) && (!struct_def.fixed)) {
|
||||||
@@ -430,7 +434,7 @@ static void BuildFieldOfTable(const StructDef &struct_def,
|
|||||||
code += MakeCamel(field.name, false);
|
code += MakeCamel(field.name, false);
|
||||||
}
|
}
|
||||||
code += ", " + field.value.constant;
|
code += ", " + field.value.constant;
|
||||||
code += ") }\n";
|
code += ")\n}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the value of one of the members of a table's vector.
|
// Set the value of one of the members of a table's vector.
|
||||||
@@ -441,7 +445,7 @@ static void BuildVectorOfTable(const StructDef &struct_def,
|
|||||||
code += "func " + struct_def.name + "Start";
|
code += "func " + struct_def.name + "Start";
|
||||||
code += MakeCamel(field.name);
|
code += MakeCamel(field.name);
|
||||||
code += "Vector(builder *flatbuffers.Builder, numElems int) ";
|
code += "Vector(builder *flatbuffers.Builder, numElems int) ";
|
||||||
code += "flatbuffers.UOffsetT { return builder.StartVector(";
|
code += "flatbuffers.UOffsetT {\n\treturn builder.StartVector(";
|
||||||
auto vector_type = field.value.type.VectorType();
|
auto vector_type = field.value.type.VectorType();
|
||||||
auto alignment = InlineAlignment(vector_type);
|
auto alignment = InlineAlignment(vector_type);
|
||||||
auto elem_size = InlineSize(vector_type);
|
auto elem_size = InlineSize(vector_type);
|
||||||
@@ -456,7 +460,7 @@ static void GetEndOffsetOnTable(const StructDef &struct_def,
|
|||||||
std::string &code = *code_ptr;
|
std::string &code = *code_ptr;
|
||||||
code += "func " + struct_def.name + "End";
|
code += "func " + struct_def.name + "End";
|
||||||
code += "(builder *flatbuffers.Builder) flatbuffers.UOffsetT ";
|
code += "(builder *flatbuffers.Builder) flatbuffers.UOffsetT ";
|
||||||
code += "{ return builder.EndObject() }\n";
|
code += "{\n\treturn builder.EndObject()\n}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate the receiver for function signatures.
|
// Generate the receiver for function signatures.
|
||||||
@@ -521,9 +525,9 @@ static void MutateScalarFieldOfStruct(const StructDef &struct_def,
|
|||||||
std::string setter = "rcv._tab.Mutate" + type;
|
std::string setter = "rcv._tab.Mutate" + type;
|
||||||
GenReceiver(struct_def, code_ptr);
|
GenReceiver(struct_def, code_ptr);
|
||||||
code += " Mutate" + MakeCamel(field.name);
|
code += " Mutate" + MakeCamel(field.name);
|
||||||
code += "(n " + TypeName(field) + ") bool { return " + setter;
|
code += "(n " + TypeName(field) + ") bool {\n\treturn " + setter;
|
||||||
code += "(rcv._tab.Pos + flatbuffers.UOffsetT(";
|
code += "(rcv._tab.Pos+flatbuffers.UOffsetT(";
|
||||||
code += NumToString(field.value.offset) + "), n) }\n\n";
|
code += NumToString(field.value.offset) + "), n)\n}\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mutate the value of a table's scalar.
|
// Mutate the value of a table's scalar.
|
||||||
@@ -732,7 +736,7 @@ class GoGenerator : public BaseGenerator {
|
|||||||
if (needs_imports) {
|
if (needs_imports) {
|
||||||
code += "import (\n";
|
code += "import (\n";
|
||||||
code += "\tflatbuffers \"github.com/google/flatbuffers/go\"\n";
|
code += "\tflatbuffers \"github.com/google/flatbuffers/go\"\n";
|
||||||
code += ")\n";
|
code += ")\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ mkdir -p ${go_src}/MyGame/Example
|
|||||||
mkdir -p ${go_src}/github.com/google/flatbuffers/go
|
mkdir -p ${go_src}/github.com/google/flatbuffers/go
|
||||||
mkdir -p ${go_src}/flatbuffers_test
|
mkdir -p ${go_src}/flatbuffers_test
|
||||||
|
|
||||||
cp -u MyGame/Example/*.go ./go_gen/src/MyGame/Example/
|
cp -a MyGame/Example/*.go ./go_gen/src/MyGame/Example/
|
||||||
cp -u ../go/* ./go_gen/src/github.com/google/flatbuffers/go
|
cp -a ../go/* ./go_gen/src/github.com/google/flatbuffers/go
|
||||||
cp -u ./go_test.go ./go_gen/src/flatbuffers_test/
|
cp -a ./go_test.go ./go_gen/src/flatbuffers_test/
|
||||||
|
|
||||||
# Run tests with necessary flags.
|
# Run tests with necessary flags.
|
||||||
# Developers may wish to see more detail by appending the verbosity flag
|
# Developers may wish to see more detail by appending the verbosity flag
|
||||||
@@ -50,6 +50,18 @@ GOPATH=${go_path} go test flatbuffers_test \
|
|||||||
--fuzz_fields=4 \
|
--fuzz_fields=4 \
|
||||||
--fuzz_objects=10000
|
--fuzz_objects=10000
|
||||||
|
|
||||||
|
GO_TEST_RESULT=$?
|
||||||
rm -rf ${go_path}/{pkg,src}
|
rm -rf ${go_path}/{pkg,src}
|
||||||
|
if [[ $GO_TEST_RESULT == 0 ]]; then
|
||||||
|
echo "OK: Go tests passed."
|
||||||
|
else
|
||||||
|
echo "KO: Go tests failed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "OK: Go tests passed."
|
NOT_FMT_FILES=$(gofmt -l MyGame)
|
||||||
|
if [[ ${NOT_FMT_FILES} != "" ]]; then
|
||||||
|
echo "These files are not well gofmt'ed:\n\n${NOT_FMT_FILES}"
|
||||||
|
# enable this when enums are properly formated
|
||||||
|
# exit 1
|
||||||
|
fi
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package Example
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
/// an example documentation comment: monster object
|
/// an example documentation comment: monster object
|
||||||
type Monster struct {
|
type Monster struct {
|
||||||
_tab flatbuffers.Table
|
_tab flatbuffers.Table
|
||||||
@@ -13,7 +14,7 @@ type Monster struct {
|
|||||||
func GetRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Monster {
|
func GetRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Monster {
|
||||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||||
x := &Monster{}
|
x := &Monster{}
|
||||||
x.Init(buf, n + offset)
|
x.Init(buf, n+offset)
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,7 +72,7 @@ func (rcv *Monster) Inventory(j int) byte {
|
|||||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(14))
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(14))
|
||||||
if o != 0 {
|
if o != 0 {
|
||||||
a := rcv._tab.Vector(o)
|
a := rcv._tab.Vector(o)
|
||||||
return rcv._tab.GetByte(a + flatbuffers.UOffsetT(j * 1))
|
return rcv._tab.GetByte(a + flatbuffers.UOffsetT(j*1))
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@@ -130,9 +131,9 @@ func (rcv *Monster) Test4(obj *Test, j int) bool {
|
|||||||
if o != 0 {
|
if o != 0 {
|
||||||
x := rcv._tab.Vector(o)
|
x := rcv._tab.Vector(o)
|
||||||
x += flatbuffers.UOffsetT(j) * 4
|
x += flatbuffers.UOffsetT(j) * 4
|
||||||
if obj == nil {
|
if obj == nil {
|
||||||
obj = new(Test)
|
obj = new(Test)
|
||||||
}
|
}
|
||||||
obj.Init(rcv._tab.Bytes, x)
|
obj.Init(rcv._tab.Bytes, x)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@@ -151,7 +152,7 @@ func (rcv *Monster) Testarrayofstring(j int) []byte {
|
|||||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(24))
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(24))
|
||||||
if o != 0 {
|
if o != 0 {
|
||||||
a := rcv._tab.Vector(o)
|
a := rcv._tab.Vector(o)
|
||||||
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j * 4))
|
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j*4))
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -172,9 +173,9 @@ func (rcv *Monster) Testarrayoftables(obj *Monster, j int) bool {
|
|||||||
x := rcv._tab.Vector(o)
|
x := rcv._tab.Vector(o)
|
||||||
x += flatbuffers.UOffsetT(j) * 4
|
x += flatbuffers.UOffsetT(j) * 4
|
||||||
x = rcv._tab.Indirect(x)
|
x = rcv._tab.Indirect(x)
|
||||||
if obj == nil {
|
if obj == nil {
|
||||||
obj = new(Monster)
|
obj = new(Monster)
|
||||||
}
|
}
|
||||||
obj.Init(rcv._tab.Bytes, x)
|
obj.Init(rcv._tab.Bytes, x)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@@ -208,7 +209,7 @@ func (rcv *Monster) Testnestedflatbuffer(j int) byte {
|
|||||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(30))
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(30))
|
||||||
if o != 0 {
|
if o != 0 {
|
||||||
a := rcv._tab.Vector(o)
|
a := rcv._tab.Vector(o)
|
||||||
return rcv._tab.GetByte(a + flatbuffers.UOffsetT(j * 1))
|
return rcv._tab.GetByte(a + flatbuffers.UOffsetT(j*1))
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@@ -354,7 +355,7 @@ func (rcv *Monster) Testarrayofbools(j int) byte {
|
|||||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(52))
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(52))
|
||||||
if o != 0 {
|
if o != 0 {
|
||||||
a := rcv._tab.Vector(o)
|
a := rcv._tab.Vector(o)
|
||||||
return rcv._tab.GetByte(a + flatbuffers.UOffsetT(j * 1))
|
return rcv._tab.GetByte(a + flatbuffers.UOffsetT(j*1))
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@@ -407,7 +408,7 @@ func (rcv *Monster) Testarrayofstring2(j int) []byte {
|
|||||||
o := flatbuffers.UOffsetT(rcv._tab.Offset(60))
|
o := flatbuffers.UOffsetT(rcv._tab.Offset(60))
|
||||||
if o != 0 {
|
if o != 0 {
|
||||||
a := rcv._tab.Vector(o)
|
a := rcv._tab.Vector(o)
|
||||||
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j * 4))
|
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j*4))
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -420,47 +421,114 @@ func (rcv *Monster) Testarrayofstring2Length() int {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func MonsterStart(builder *flatbuffers.Builder) { builder.StartObject(29) }
|
func MonsterStart(builder *flatbuffers.Builder) {
|
||||||
func MonsterAddPos(builder *flatbuffers.Builder, pos flatbuffers.UOffsetT) { builder.PrependStructSlot(0, flatbuffers.UOffsetT(pos), 0) }
|
builder.StartObject(29)
|
||||||
func MonsterAddMana(builder *flatbuffers.Builder, mana int16) { builder.PrependInt16Slot(1, mana, 150) }
|
|
||||||
func MonsterAddHp(builder *flatbuffers.Builder, hp int16) { builder.PrependInt16Slot(2, hp, 100) }
|
|
||||||
func MonsterAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(name), 0) }
|
|
||||||
func MonsterAddInventory(builder *flatbuffers.Builder, inventory flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(inventory), 0) }
|
|
||||||
func MonsterStartInventoryVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(1, numElems, 1)
|
|
||||||
}
|
}
|
||||||
func MonsterAddColor(builder *flatbuffers.Builder, color int8) { builder.PrependInt8Slot(6, color, 8) }
|
func MonsterAddPos(builder *flatbuffers.Builder, pos flatbuffers.UOffsetT) {
|
||||||
func MonsterAddTestType(builder *flatbuffers.Builder, testType byte) { builder.PrependByteSlot(7, testType, 0) }
|
builder.PrependStructSlot(0, flatbuffers.UOffsetT(pos), 0)
|
||||||
func MonsterAddTest(builder *flatbuffers.Builder, test flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(8, flatbuffers.UOffsetT(test), 0) }
|
|
||||||
func MonsterAddTest4(builder *flatbuffers.Builder, test4 flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(9, flatbuffers.UOffsetT(test4), 0) }
|
|
||||||
func MonsterStartTest4Vector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 2)
|
|
||||||
}
|
}
|
||||||
func MonsterAddTestarrayofstring(builder *flatbuffers.Builder, testarrayofstring flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(10, flatbuffers.UOffsetT(testarrayofstring), 0) }
|
func MonsterAddMana(builder *flatbuffers.Builder, mana int16) {
|
||||||
func MonsterStartTestarrayofstringVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 4)
|
builder.PrependInt16Slot(1, mana, 150)
|
||||||
}
|
}
|
||||||
func MonsterAddTestarrayoftables(builder *flatbuffers.Builder, testarrayoftables flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(11, flatbuffers.UOffsetT(testarrayoftables), 0) }
|
func MonsterAddHp(builder *flatbuffers.Builder, hp int16) {
|
||||||
func MonsterStartTestarrayoftablesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 4)
|
builder.PrependInt16Slot(2, hp, 100)
|
||||||
}
|
}
|
||||||
func MonsterAddEnemy(builder *flatbuffers.Builder, enemy flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(12, flatbuffers.UOffsetT(enemy), 0) }
|
func MonsterAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) {
|
||||||
func MonsterAddTestnestedflatbuffer(builder *flatbuffers.Builder, testnestedflatbuffer flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(13, flatbuffers.UOffsetT(testnestedflatbuffer), 0) }
|
builder.PrependUOffsetTSlot(3, flatbuffers.UOffsetT(name), 0)
|
||||||
func MonsterStartTestnestedflatbufferVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(1, numElems, 1)
|
|
||||||
}
|
}
|
||||||
func MonsterAddTestempty(builder *flatbuffers.Builder, testempty flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(14, flatbuffers.UOffsetT(testempty), 0) }
|
func MonsterAddInventory(builder *flatbuffers.Builder, inventory flatbuffers.UOffsetT) {
|
||||||
func MonsterAddTestbool(builder *flatbuffers.Builder, testbool byte) { builder.PrependByteSlot(15, testbool, 0) }
|
builder.PrependUOffsetTSlot(5, flatbuffers.UOffsetT(inventory), 0)
|
||||||
func MonsterAddTesthashs32Fnv1(builder *flatbuffers.Builder, testhashs32Fnv1 int32) { builder.PrependInt32Slot(16, testhashs32Fnv1, 0) }
|
|
||||||
func MonsterAddTesthashu32Fnv1(builder *flatbuffers.Builder, testhashu32Fnv1 uint32) { builder.PrependUint32Slot(17, testhashu32Fnv1, 0) }
|
|
||||||
func MonsterAddTesthashs64Fnv1(builder *flatbuffers.Builder, testhashs64Fnv1 int64) { builder.PrependInt64Slot(18, testhashs64Fnv1, 0) }
|
|
||||||
func MonsterAddTesthashu64Fnv1(builder *flatbuffers.Builder, testhashu64Fnv1 uint64) { builder.PrependUint64Slot(19, testhashu64Fnv1, 0) }
|
|
||||||
func MonsterAddTesthashs32Fnv1a(builder *flatbuffers.Builder, testhashs32Fnv1a int32) { builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) }
|
|
||||||
func MonsterAddTesthashu32Fnv1a(builder *flatbuffers.Builder, testhashu32Fnv1a uint32) { builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) }
|
|
||||||
func MonsterAddTesthashs64Fnv1a(builder *flatbuffers.Builder, testhashs64Fnv1a int64) { builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) }
|
|
||||||
func MonsterAddTesthashu64Fnv1a(builder *flatbuffers.Builder, testhashu64Fnv1a uint64) { builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) }
|
|
||||||
func MonsterAddTestarrayofbools(builder *flatbuffers.Builder, testarrayofbools flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(24, flatbuffers.UOffsetT(testarrayofbools), 0) }
|
|
||||||
func MonsterStartTestarrayofboolsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(1, numElems, 1)
|
|
||||||
}
|
}
|
||||||
func MonsterAddTestf(builder *flatbuffers.Builder, testf float32) { builder.PrependFloat32Slot(25, testf, 3.14159) }
|
func MonsterStartInventoryVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||||
func MonsterAddTestf2(builder *flatbuffers.Builder, testf2 float32) { builder.PrependFloat32Slot(26, testf2, 3.0) }
|
return builder.StartVector(1, numElems, 1)
|
||||||
func MonsterAddTestf3(builder *flatbuffers.Builder, testf3 float32) { builder.PrependFloat32Slot(27, testf3, 0.0) }
|
}
|
||||||
func MonsterAddTestarrayofstring2(builder *flatbuffers.Builder, testarrayofstring2 flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(28, flatbuffers.UOffsetT(testarrayofstring2), 0) }
|
func MonsterAddColor(builder *flatbuffers.Builder, color int8) {
|
||||||
func MonsterStartTestarrayofstring2Vector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(4, numElems, 4)
|
builder.PrependInt8Slot(6, color, 8)
|
||||||
|
}
|
||||||
|
func MonsterAddTestType(builder *flatbuffers.Builder, testType byte) {
|
||||||
|
builder.PrependByteSlot(7, testType, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTest(builder *flatbuffers.Builder, test flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(8, flatbuffers.UOffsetT(test), 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTest4(builder *flatbuffers.Builder, test4 flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(9, flatbuffers.UOffsetT(test4), 0)
|
||||||
|
}
|
||||||
|
func MonsterStartTest4Vector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||||
|
return builder.StartVector(4, numElems, 2)
|
||||||
|
}
|
||||||
|
func MonsterAddTestarrayofstring(builder *flatbuffers.Builder, testarrayofstring flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(10, flatbuffers.UOffsetT(testarrayofstring), 0)
|
||||||
|
}
|
||||||
|
func MonsterStartTestarrayofstringVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||||
|
return builder.StartVector(4, numElems, 4)
|
||||||
|
}
|
||||||
|
func MonsterAddTestarrayoftables(builder *flatbuffers.Builder, testarrayoftables flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(11, flatbuffers.UOffsetT(testarrayoftables), 0)
|
||||||
|
}
|
||||||
|
func MonsterStartTestarrayoftablesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||||
|
return builder.StartVector(4, numElems, 4)
|
||||||
|
}
|
||||||
|
func MonsterAddEnemy(builder *flatbuffers.Builder, enemy flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(12, flatbuffers.UOffsetT(enemy), 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTestnestedflatbuffer(builder *flatbuffers.Builder, testnestedflatbuffer flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(13, flatbuffers.UOffsetT(testnestedflatbuffer), 0)
|
||||||
|
}
|
||||||
|
func MonsterStartTestnestedflatbufferVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||||
|
return builder.StartVector(1, numElems, 1)
|
||||||
|
}
|
||||||
|
func MonsterAddTestempty(builder *flatbuffers.Builder, testempty flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(14, flatbuffers.UOffsetT(testempty), 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTestbool(builder *flatbuffers.Builder, testbool byte) {
|
||||||
|
builder.PrependByteSlot(15, testbool, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTesthashs32Fnv1(builder *flatbuffers.Builder, testhashs32Fnv1 int32) {
|
||||||
|
builder.PrependInt32Slot(16, testhashs32Fnv1, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTesthashu32Fnv1(builder *flatbuffers.Builder, testhashu32Fnv1 uint32) {
|
||||||
|
builder.PrependUint32Slot(17, testhashu32Fnv1, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTesthashs64Fnv1(builder *flatbuffers.Builder, testhashs64Fnv1 int64) {
|
||||||
|
builder.PrependInt64Slot(18, testhashs64Fnv1, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTesthashu64Fnv1(builder *flatbuffers.Builder, testhashu64Fnv1 uint64) {
|
||||||
|
builder.PrependUint64Slot(19, testhashu64Fnv1, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTesthashs32Fnv1a(builder *flatbuffers.Builder, testhashs32Fnv1a int32) {
|
||||||
|
builder.PrependInt32Slot(20, testhashs32Fnv1a, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTesthashu32Fnv1a(builder *flatbuffers.Builder, testhashu32Fnv1a uint32) {
|
||||||
|
builder.PrependUint32Slot(21, testhashu32Fnv1a, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTesthashs64Fnv1a(builder *flatbuffers.Builder, testhashs64Fnv1a int64) {
|
||||||
|
builder.PrependInt64Slot(22, testhashs64Fnv1a, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTesthashu64Fnv1a(builder *flatbuffers.Builder, testhashu64Fnv1a uint64) {
|
||||||
|
builder.PrependUint64Slot(23, testhashu64Fnv1a, 0)
|
||||||
|
}
|
||||||
|
func MonsterAddTestarrayofbools(builder *flatbuffers.Builder, testarrayofbools flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(24, flatbuffers.UOffsetT(testarrayofbools), 0)
|
||||||
|
}
|
||||||
|
func MonsterStartTestarrayofboolsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||||
|
return builder.StartVector(1, numElems, 1)
|
||||||
|
}
|
||||||
|
func MonsterAddTestf(builder *flatbuffers.Builder, testf float32) {
|
||||||
|
builder.PrependFloat32Slot(25, testf, 3.14159)
|
||||||
|
}
|
||||||
|
func MonsterAddTestf2(builder *flatbuffers.Builder, testf2 float32) {
|
||||||
|
builder.PrependFloat32Slot(26, testf2, 3.0)
|
||||||
|
}
|
||||||
|
func MonsterAddTestf3(builder *flatbuffers.Builder, testf3 float32) {
|
||||||
|
builder.PrependFloat32Slot(27, testf3, 0.0)
|
||||||
|
}
|
||||||
|
func MonsterAddTestarrayofstring2(builder *flatbuffers.Builder, testarrayofstring2 flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(28, flatbuffers.UOffsetT(testarrayofstring2), 0)
|
||||||
|
}
|
||||||
|
func MonsterStartTestarrayofstring2Vector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
|
||||||
|
return builder.StartVector(4, numElems, 4)
|
||||||
|
}
|
||||||
|
func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||||
|
return builder.EndObject()
|
||||||
}
|
}
|
||||||
func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package Example
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Stat struct {
|
type Stat struct {
|
||||||
_tab flatbuffers.Table
|
_tab flatbuffers.Table
|
||||||
}
|
}
|
||||||
@@ -12,7 +13,7 @@ type Stat struct {
|
|||||||
func GetRootAsStat(buf []byte, offset flatbuffers.UOffsetT) *Stat {
|
func GetRootAsStat(buf []byte, offset flatbuffers.UOffsetT) *Stat {
|
||||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||||
x := &Stat{}
|
x := &Stat{}
|
||||||
x.Init(buf, n + offset)
|
x.Init(buf, n+offset)
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,8 +54,18 @@ func (rcv *Stat) MutateCount(n uint16) bool {
|
|||||||
return rcv._tab.MutateUint16Slot(8, n)
|
return rcv._tab.MutateUint16Slot(8, n)
|
||||||
}
|
}
|
||||||
|
|
||||||
func StatStart(builder *flatbuffers.Builder) { builder.StartObject(3) }
|
func StatStart(builder *flatbuffers.Builder) {
|
||||||
func StatAddId(builder *flatbuffers.Builder, id flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(id), 0) }
|
builder.StartObject(3)
|
||||||
func StatAddVal(builder *flatbuffers.Builder, val int64) { builder.PrependInt64Slot(1, val, 0) }
|
}
|
||||||
func StatAddCount(builder *flatbuffers.Builder, count uint16) { builder.PrependUint16Slot(2, count, 0) }
|
func StatAddId(builder *flatbuffers.Builder, id flatbuffers.UOffsetT) {
|
||||||
func StatEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
|
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(id), 0)
|
||||||
|
}
|
||||||
|
func StatAddVal(builder *flatbuffers.Builder, val int64) {
|
||||||
|
builder.PrependInt64Slot(1, val, 0)
|
||||||
|
}
|
||||||
|
func StatAddCount(builder *flatbuffers.Builder, count uint16) {
|
||||||
|
builder.PrependUint16Slot(2, count, 0)
|
||||||
|
}
|
||||||
|
func StatEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||||
|
return builder.EndObject()
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package Example
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Test struct {
|
type Test struct {
|
||||||
_tab flatbuffers.Struct
|
_tab flatbuffers.Struct
|
||||||
}
|
}
|
||||||
@@ -14,17 +15,24 @@ func (rcv *Test) Init(buf []byte, i flatbuffers.UOffsetT) {
|
|||||||
rcv._tab.Pos = i
|
rcv._tab.Pos = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rcv *Test) A() int16 { return rcv._tab.GetInt16(rcv._tab.Pos + flatbuffers.UOffsetT(0)) }
|
func (rcv *Test) A() int16 {
|
||||||
func (rcv *Test) MutateA(n int16) bool { return rcv._tab.MutateInt16(rcv._tab.Pos + flatbuffers.UOffsetT(0), n) }
|
return rcv._tab.GetInt16(rcv._tab.Pos + flatbuffers.UOffsetT(0))
|
||||||
|
}
|
||||||
func (rcv *Test) B() int8 { return rcv._tab.GetInt8(rcv._tab.Pos + flatbuffers.UOffsetT(2)) }
|
func (rcv *Test) MutateA(n int16) bool {
|
||||||
func (rcv *Test) MutateB(n int8) bool { return rcv._tab.MutateInt8(rcv._tab.Pos + flatbuffers.UOffsetT(2), n) }
|
return rcv._tab.MutateInt16(rcv._tab.Pos+flatbuffers.UOffsetT(0), n)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (rcv *Test) B() int8 {
|
||||||
|
return rcv._tab.GetInt8(rcv._tab.Pos + flatbuffers.UOffsetT(2))
|
||||||
|
}
|
||||||
|
func (rcv *Test) MutateB(n int8) bool {
|
||||||
|
return rcv._tab.MutateInt8(rcv._tab.Pos+flatbuffers.UOffsetT(2), n)
|
||||||
|
}
|
||||||
|
|
||||||
func CreateTest(builder *flatbuffers.Builder, a int16, b int8) flatbuffers.UOffsetT {
|
func CreateTest(builder *flatbuffers.Builder, a int16, b int8) flatbuffers.UOffsetT {
|
||||||
builder.Prep(2, 4)
|
builder.Prep(2, 4)
|
||||||
builder.Pad(1)
|
builder.Pad(1)
|
||||||
builder.PrependInt8(b)
|
builder.PrependInt8(b)
|
||||||
builder.PrependInt16(a)
|
builder.PrependInt16(a)
|
||||||
return builder.Offset()
|
return builder.Offset()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package Example
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TestSimpleTableWithEnum struct {
|
type TestSimpleTableWithEnum struct {
|
||||||
_tab flatbuffers.Table
|
_tab flatbuffers.Table
|
||||||
}
|
}
|
||||||
@@ -12,7 +13,7 @@ type TestSimpleTableWithEnum struct {
|
|||||||
func GetRootAsTestSimpleTableWithEnum(buf []byte, offset flatbuffers.UOffsetT) *TestSimpleTableWithEnum {
|
func GetRootAsTestSimpleTableWithEnum(buf []byte, offset flatbuffers.UOffsetT) *TestSimpleTableWithEnum {
|
||||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||||
x := &TestSimpleTableWithEnum{}
|
x := &TestSimpleTableWithEnum{}
|
||||||
x.Init(buf, n + offset)
|
x.Init(buf, n+offset)
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,6 +34,12 @@ func (rcv *TestSimpleTableWithEnum) MutateColor(n int8) bool {
|
|||||||
return rcv._tab.MutateInt8Slot(4, n)
|
return rcv._tab.MutateInt8Slot(4, n)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSimpleTableWithEnumStart(builder *flatbuffers.Builder) { builder.StartObject(1) }
|
func TestSimpleTableWithEnumStart(builder *flatbuffers.Builder) {
|
||||||
func TestSimpleTableWithEnumAddColor(builder *flatbuffers.Builder, color int8) { builder.PrependInt8Slot(0, color, 2) }
|
builder.StartObject(1)
|
||||||
func TestSimpleTableWithEnumEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
|
}
|
||||||
|
func TestSimpleTableWithEnumAddColor(builder *flatbuffers.Builder, color int8) {
|
||||||
|
builder.PrependInt8Slot(0, color, 2)
|
||||||
|
}
|
||||||
|
func TestSimpleTableWithEnumEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||||
|
return builder.EndObject()
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package Example
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Vec3 struct {
|
type Vec3 struct {
|
||||||
_tab flatbuffers.Struct
|
_tab flatbuffers.Struct
|
||||||
}
|
}
|
||||||
@@ -14,42 +15,62 @@ func (rcv *Vec3) Init(buf []byte, i flatbuffers.UOffsetT) {
|
|||||||
rcv._tab.Pos = i
|
rcv._tab.Pos = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rcv *Vec3) X() float32 { return rcv._tab.GetFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(0)) }
|
func (rcv *Vec3) X() float32 {
|
||||||
func (rcv *Vec3) MutateX(n float32) bool { return rcv._tab.MutateFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(0), n) }
|
return rcv._tab.GetFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(0))
|
||||||
|
}
|
||||||
|
func (rcv *Vec3) MutateX(n float32) bool {
|
||||||
|
return rcv._tab.MutateFloat32(rcv._tab.Pos+flatbuffers.UOffsetT(0), n)
|
||||||
|
}
|
||||||
|
|
||||||
func (rcv *Vec3) Y() float32 { return rcv._tab.GetFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(4)) }
|
func (rcv *Vec3) Y() float32 {
|
||||||
func (rcv *Vec3) MutateY(n float32) bool { return rcv._tab.MutateFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(4), n) }
|
return rcv._tab.GetFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(4))
|
||||||
|
}
|
||||||
|
func (rcv *Vec3) MutateY(n float32) bool {
|
||||||
|
return rcv._tab.MutateFloat32(rcv._tab.Pos+flatbuffers.UOffsetT(4), n)
|
||||||
|
}
|
||||||
|
|
||||||
func (rcv *Vec3) Z() float32 { return rcv._tab.GetFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(8)) }
|
func (rcv *Vec3) Z() float32 {
|
||||||
func (rcv *Vec3) MutateZ(n float32) bool { return rcv._tab.MutateFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(8), n) }
|
return rcv._tab.GetFloat32(rcv._tab.Pos + flatbuffers.UOffsetT(8))
|
||||||
|
}
|
||||||
|
func (rcv *Vec3) MutateZ(n float32) bool {
|
||||||
|
return rcv._tab.MutateFloat32(rcv._tab.Pos+flatbuffers.UOffsetT(8), n)
|
||||||
|
}
|
||||||
|
|
||||||
func (rcv *Vec3) Test1() float64 { return rcv._tab.GetFloat64(rcv._tab.Pos + flatbuffers.UOffsetT(16)) }
|
func (rcv *Vec3) Test1() float64 {
|
||||||
func (rcv *Vec3) MutateTest1(n float64) bool { return rcv._tab.MutateFloat64(rcv._tab.Pos + flatbuffers.UOffsetT(16), n) }
|
return rcv._tab.GetFloat64(rcv._tab.Pos + flatbuffers.UOffsetT(16))
|
||||||
|
}
|
||||||
|
func (rcv *Vec3) MutateTest1(n float64) bool {
|
||||||
|
return rcv._tab.MutateFloat64(rcv._tab.Pos+flatbuffers.UOffsetT(16), n)
|
||||||
|
}
|
||||||
|
|
||||||
func (rcv *Vec3) Test2() int8 { return rcv._tab.GetInt8(rcv._tab.Pos + flatbuffers.UOffsetT(24)) }
|
func (rcv *Vec3) Test2() int8 {
|
||||||
func (rcv *Vec3) MutateTest2(n int8) bool { return rcv._tab.MutateInt8(rcv._tab.Pos + flatbuffers.UOffsetT(24), n) }
|
return rcv._tab.GetInt8(rcv._tab.Pos + flatbuffers.UOffsetT(24))
|
||||||
|
}
|
||||||
|
func (rcv *Vec3) MutateTest2(n int8) bool {
|
||||||
|
return rcv._tab.MutateInt8(rcv._tab.Pos+flatbuffers.UOffsetT(24), n)
|
||||||
|
}
|
||||||
|
|
||||||
func (rcv *Vec3) Test3(obj *Test) *Test {
|
func (rcv *Vec3) Test3(obj *Test) *Test {
|
||||||
if obj == nil {
|
if obj == nil {
|
||||||
obj = new(Test)
|
obj = new(Test)
|
||||||
}
|
}
|
||||||
obj.Init(rcv._tab.Bytes, rcv._tab.Pos + 26)
|
obj.Init(rcv._tab.Bytes, rcv._tab.Pos+26)
|
||||||
return obj
|
return obj
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateVec3(builder *flatbuffers.Builder, x float32, y float32, z float32, test1 float64, test2 int8, test3_a int16, test3_b int8) flatbuffers.UOffsetT {
|
func CreateVec3(builder *flatbuffers.Builder, x float32, y float32, z float32, test1 float64, test2 int8, test3_a int16, test3_b int8) flatbuffers.UOffsetT {
|
||||||
builder.Prep(16, 32)
|
builder.Prep(16, 32)
|
||||||
builder.Pad(2)
|
builder.Pad(2)
|
||||||
builder.Prep(2, 4)
|
builder.Prep(2, 4)
|
||||||
builder.Pad(1)
|
builder.Pad(1)
|
||||||
builder.PrependInt8(test3_b)
|
builder.PrependInt8(test3_b)
|
||||||
builder.PrependInt16(test3_a)
|
builder.PrependInt16(test3_a)
|
||||||
builder.Pad(1)
|
builder.Pad(1)
|
||||||
builder.PrependInt8(test2)
|
builder.PrependInt8(test2)
|
||||||
builder.PrependFloat64(test1)
|
builder.PrependFloat64(test1)
|
||||||
builder.Pad(4)
|
builder.Pad(4)
|
||||||
builder.PrependFloat32(z)
|
builder.PrependFloat32(z)
|
||||||
builder.PrependFloat32(y)
|
builder.PrependFloat32(y)
|
||||||
builder.PrependFloat32(x)
|
builder.PrependFloat32(x)
|
||||||
return builder.Offset()
|
return builder.Offset()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package Example2
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Monster struct {
|
type Monster struct {
|
||||||
_tab flatbuffers.Table
|
_tab flatbuffers.Table
|
||||||
}
|
}
|
||||||
@@ -12,7 +13,7 @@ type Monster struct {
|
|||||||
func GetRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Monster {
|
func GetRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Monster {
|
||||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||||
x := &Monster{}
|
x := &Monster{}
|
||||||
x.Init(buf, n + offset)
|
x.Init(buf, n+offset)
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -21,5 +22,9 @@ func (rcv *Monster) Init(buf []byte, i flatbuffers.UOffsetT) {
|
|||||||
rcv._tab.Pos = i
|
rcv._tab.Pos = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func MonsterStart(builder *flatbuffers.Builder) { builder.StartObject(0) }
|
func MonsterStart(builder *flatbuffers.Builder) {
|
||||||
func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
|
builder.StartObject(0)
|
||||||
|
}
|
||||||
|
func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||||
|
return builder.EndObject()
|
||||||
|
}
|
||||||
|
|||||||
@@ -260,11 +260,11 @@ inline flatbuffers::Offset<Stat> CreateStat(flatbuffers::FlatBufferBuilder &_fbb
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Stat> CreateStat(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<Stat> CreateStatDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const char *id = nullptr,
|
const char *id = nullptr,
|
||||||
int64_t val = 0,
|
int64_t val = 0,
|
||||||
uint16_t count = 0) {
|
uint16_t count = 0) {
|
||||||
return CreateStat(_fbb, id ? 0 : _fbb.CreateString(id), val, count);
|
return CreateStat(_fbb, id ? _fbb.CreateString(id) : 0, val, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Stat> CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o);
|
inline flatbuffers::Offset<Stat> CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o);
|
||||||
@@ -542,7 +542,7 @@ inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder
|
|||||||
return builder_.Finish();
|
return builder_.Finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb,
|
inline flatbuffers::Offset<Monster> CreateMonsterDirect(flatbuffers::FlatBufferBuilder &_fbb,
|
||||||
const Vec3 *pos = 0,
|
const Vec3 *pos = 0,
|
||||||
int16_t mana = 150,
|
int16_t mana = 150,
|
||||||
int16_t hp = 100,
|
int16_t hp = 100,
|
||||||
@@ -571,7 +571,7 @@ inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder
|
|||||||
float testf2 = 3.0f,
|
float testf2 = 3.0f,
|
||||||
float testf3 = 0.0f,
|
float testf3 = 0.0f,
|
||||||
const std::vector<flatbuffers::Offset<flatbuffers::String>> *testarrayofstring2 = nullptr) {
|
const std::vector<flatbuffers::Offset<flatbuffers::String>> *testarrayofstring2 = nullptr) {
|
||||||
return CreateMonster(_fbb, pos, mana, hp, name ? 0 : _fbb.CreateString(name), inventory ? 0 : _fbb.CreateVector<uint8_t>(*inventory), color, test_type, test, test4 ? 0 : _fbb.CreateVector<const Test *>(*test4), testarrayofstring ? 0 : _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*testarrayofstring), testarrayoftables ? 0 : _fbb.CreateVector<flatbuffers::Offset<Monster>>(*testarrayoftables), enemy, testnestedflatbuffer ? 0 : _fbb.CreateVector<uint8_t>(*testnestedflatbuffer), testempty, testbool, testhashs32_fnv1, testhashu32_fnv1, testhashs64_fnv1, testhashu64_fnv1, testhashs32_fnv1a, testhashu32_fnv1a, testhashs64_fnv1a, testhashu64_fnv1a, testarrayofbools ? 0 : _fbb.CreateVector<uint8_t>(*testarrayofbools), testf, testf2, testf3, testarrayofstring2 ? 0 : _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*testarrayofstring2));
|
return CreateMonster(_fbb, pos, mana, hp, name ? _fbb.CreateString(name) : 0, inventory ? _fbb.CreateVector<uint8_t>(*inventory) : 0, color, test_type, test, test4 ? _fbb.CreateVector<const Test *>(*test4) : 0, testarrayofstring ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*testarrayofstring) : 0, testarrayoftables ? _fbb.CreateVector<flatbuffers::Offset<Monster>>(*testarrayoftables) : 0, enemy, testnestedflatbuffer ? _fbb.CreateVector<uint8_t>(*testnestedflatbuffer) : 0, testempty, testbool, testhashs32_fnv1, testhashu32_fnv1, testhashs64_fnv1, testhashu64_fnv1, testhashs32_fnv1a, testhashu32_fnv1a, testhashs64_fnv1a, testhashu64_fnv1a, testarrayofbools ? _fbb.CreateVector<uint8_t>(*testarrayofbools) : 0, testf, testf2, testf3, testarrayofstring2 ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*testarrayofstring2) : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o);
|
inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o);
|
||||||
|
|||||||
@@ -7,3 +7,10 @@ const (
|
|||||||
EnumInNestedNSB = 1
|
EnumInNestedNSB = 1
|
||||||
EnumInNestedNSC = 2
|
EnumInNestedNSC = 2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var EnumNamesEnumInNestedNS = map[int]string{
|
||||||
|
EnumInNestedNSA:"A",
|
||||||
|
EnumInNestedNSB:"B",
|
||||||
|
EnumInNestedNSC:"C",
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package NamespaceB
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type StructInNestedNS struct {
|
type StructInNestedNS struct {
|
||||||
_tab flatbuffers.Struct
|
_tab flatbuffers.Struct
|
||||||
}
|
}
|
||||||
@@ -14,16 +15,23 @@ func (rcv *StructInNestedNS) Init(buf []byte, i flatbuffers.UOffsetT) {
|
|||||||
rcv._tab.Pos = i
|
rcv._tab.Pos = i
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rcv *StructInNestedNS) A() int32 { return rcv._tab.GetInt32(rcv._tab.Pos + flatbuffers.UOffsetT(0)) }
|
func (rcv *StructInNestedNS) A() int32 {
|
||||||
func (rcv *StructInNestedNS) MutateA(n int32) bool { return rcv._tab.MutateInt32(rcv._tab.Pos + flatbuffers.UOffsetT(0), n) }
|
return rcv._tab.GetInt32(rcv._tab.Pos + flatbuffers.UOffsetT(0))
|
||||||
|
}
|
||||||
func (rcv *StructInNestedNS) B() int32 { return rcv._tab.GetInt32(rcv._tab.Pos + flatbuffers.UOffsetT(4)) }
|
func (rcv *StructInNestedNS) MutateA(n int32) bool {
|
||||||
func (rcv *StructInNestedNS) MutateB(n int32) bool { return rcv._tab.MutateInt32(rcv._tab.Pos + flatbuffers.UOffsetT(4), n) }
|
return rcv._tab.MutateInt32(rcv._tab.Pos+flatbuffers.UOffsetT(0), n)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (rcv *StructInNestedNS) B() int32 {
|
||||||
|
return rcv._tab.GetInt32(rcv._tab.Pos + flatbuffers.UOffsetT(4))
|
||||||
|
}
|
||||||
|
func (rcv *StructInNestedNS) MutateB(n int32) bool {
|
||||||
|
return rcv._tab.MutateInt32(rcv._tab.Pos+flatbuffers.UOffsetT(4), n)
|
||||||
|
}
|
||||||
|
|
||||||
func CreateStructInNestedNS(builder *flatbuffers.Builder, a int32, b int32) flatbuffers.UOffsetT {
|
func CreateStructInNestedNS(builder *flatbuffers.Builder, a int32, b int32) flatbuffers.UOffsetT {
|
||||||
builder.Prep(4, 8)
|
builder.Prep(4, 8)
|
||||||
builder.PrependInt32(b)
|
builder.PrependInt32(b)
|
||||||
builder.PrependInt32(a)
|
builder.PrependInt32(a)
|
||||||
return builder.Offset()
|
return builder.Offset()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package NamespaceB
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TableInNestedNS struct {
|
type TableInNestedNS struct {
|
||||||
_tab flatbuffers.Table
|
_tab flatbuffers.Table
|
||||||
}
|
}
|
||||||
@@ -12,7 +13,7 @@ type TableInNestedNS struct {
|
|||||||
func GetRootAsTableInNestedNS(buf []byte, offset flatbuffers.UOffsetT) *TableInNestedNS {
|
func GetRootAsTableInNestedNS(buf []byte, offset flatbuffers.UOffsetT) *TableInNestedNS {
|
||||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||||
x := &TableInNestedNS{}
|
x := &TableInNestedNS{}
|
||||||
x.Init(buf, n + offset)
|
x.Init(buf, n+offset)
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,6 +34,12 @@ func (rcv *TableInNestedNS) MutateFoo(n int32) bool {
|
|||||||
return rcv._tab.MutateInt32Slot(4, n)
|
return rcv._tab.MutateInt32Slot(4, n)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TableInNestedNSStart(builder *flatbuffers.Builder) { builder.StartObject(1) }
|
func TableInNestedNSStart(builder *flatbuffers.Builder) {
|
||||||
func TableInNestedNSAddFoo(builder *flatbuffers.Builder, foo int32) { builder.PrependInt32Slot(0, foo, 0) }
|
builder.StartObject(1)
|
||||||
func TableInNestedNSEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
|
}
|
||||||
|
func TableInNestedNSAddFoo(builder *flatbuffers.Builder, foo int32) {
|
||||||
|
builder.PrependInt32Slot(0, foo, 0)
|
||||||
|
}
|
||||||
|
func TableInNestedNSEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||||
|
return builder.EndObject()
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package NamespaceA
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SecondTableInA struct {
|
type SecondTableInA struct {
|
||||||
_tab flatbuffers.Table
|
_tab flatbuffers.Table
|
||||||
}
|
}
|
||||||
@@ -12,7 +13,7 @@ type SecondTableInA struct {
|
|||||||
func GetRootAsSecondTableInA(buf []byte, offset flatbuffers.UOffsetT) *SecondTableInA {
|
func GetRootAsSecondTableInA(buf []byte, offset flatbuffers.UOffsetT) *SecondTableInA {
|
||||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||||
x := &SecondTableInA{}
|
x := &SecondTableInA{}
|
||||||
x.Init(buf, n + offset)
|
x.Init(buf, n+offset)
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,6 +35,12 @@ func (rcv *SecondTableInA) ReferToC(obj *TableInC) *TableInC {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SecondTableInAStart(builder *flatbuffers.Builder) { builder.StartObject(1) }
|
func SecondTableInAStart(builder *flatbuffers.Builder) {
|
||||||
func SecondTableInAAddReferToC(builder *flatbuffers.Builder, referToC flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(referToC), 0) }
|
builder.StartObject(1)
|
||||||
func SecondTableInAEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
|
}
|
||||||
|
func SecondTableInAAddReferToC(builder *flatbuffers.Builder, referToC flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(referToC), 0)
|
||||||
|
}
|
||||||
|
func SecondTableInAEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||||
|
return builder.EndObject()
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package NamespaceA
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TableInFirstNS struct {
|
type TableInFirstNS struct {
|
||||||
_tab flatbuffers.Table
|
_tab flatbuffers.Table
|
||||||
}
|
}
|
||||||
@@ -12,7 +13,7 @@ type TableInFirstNS struct {
|
|||||||
func GetRootAsTableInFirstNS(buf []byte, offset flatbuffers.UOffsetT) *TableInFirstNS {
|
func GetRootAsTableInFirstNS(buf []byte, offset flatbuffers.UOffsetT) *TableInFirstNS {
|
||||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||||
x := &TableInFirstNS{}
|
x := &TableInFirstNS{}
|
||||||
x.Init(buf, n + offset)
|
x.Init(buf, n+offset)
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,8 +60,18 @@ func (rcv *TableInFirstNS) FooStruct(obj *StructInNestedNS) *StructInNestedNS {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func TableInFirstNSStart(builder *flatbuffers.Builder) { builder.StartObject(3) }
|
func TableInFirstNSStart(builder *flatbuffers.Builder) {
|
||||||
func TableInFirstNSAddFooTable(builder *flatbuffers.Builder, fooTable flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(fooTable), 0) }
|
builder.StartObject(3)
|
||||||
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 TableInFirstNSAddFooTable(builder *flatbuffers.Builder, fooTable flatbuffers.UOffsetT) {
|
||||||
func TableInFirstNSEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
|
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()
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package NamespaceC
|
|||||||
import (
|
import (
|
||||||
flatbuffers "github.com/google/flatbuffers/go"
|
flatbuffers "github.com/google/flatbuffers/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TableInC struct {
|
type TableInC struct {
|
||||||
_tab flatbuffers.Table
|
_tab flatbuffers.Table
|
||||||
}
|
}
|
||||||
@@ -12,7 +13,7 @@ type TableInC struct {
|
|||||||
func GetRootAsTableInC(buf []byte, offset flatbuffers.UOffsetT) *TableInC {
|
func GetRootAsTableInC(buf []byte, offset flatbuffers.UOffsetT) *TableInC {
|
||||||
n := flatbuffers.GetUOffsetT(buf[offset:])
|
n := flatbuffers.GetUOffsetT(buf[offset:])
|
||||||
x := &TableInC{}
|
x := &TableInC{}
|
||||||
x.Init(buf, n + offset)
|
x.Init(buf, n+offset)
|
||||||
return x
|
return x
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,7 +48,15 @@ func (rcv *TableInC) ReferToA2(obj *SecondTableInA) *SecondTableInA {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func TableInCStart(builder *flatbuffers.Builder) { builder.StartObject(2) }
|
func TableInCStart(builder *flatbuffers.Builder) {
|
||||||
func TableInCAddReferToA1(builder *flatbuffers.Builder, referToA1 flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(referToA1), 0) }
|
builder.StartObject(2)
|
||||||
func TableInCAddReferToA2(builder *flatbuffers.Builder, referToA2 flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(referToA2), 0) }
|
}
|
||||||
func TableInCEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }
|
func TableInCAddReferToA1(builder *flatbuffers.Builder, referToA1 flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(referToA1), 0)
|
||||||
|
}
|
||||||
|
func TableInCAddReferToA2(builder *flatbuffers.Builder, referToA2 flatbuffers.UOffsetT) {
|
||||||
|
builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(referToA2), 0)
|
||||||
|
}
|
||||||
|
func TableInCEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
||||||
|
return builder.EndObject()
|
||||||
|
}
|
||||||
|
|||||||
@@ -1169,6 +1169,11 @@ void ParseUnionTest() {
|
|||||||
"table V { X:U; }"
|
"table V { X:U; }"
|
||||||
"root_type V;"
|
"root_type V;"
|
||||||
"{ X:{ A:1 }, X_type: T }"), true);
|
"{ X:{ A:1 }, X_type: T }"), true);
|
||||||
|
// Unions must be parsable with prefixed namespace.
|
||||||
|
flatbuffers::Parser parser2;
|
||||||
|
TEST_EQ(parser2.Parse("namespace N; table A {} namespace; union U { N.A }"
|
||||||
|
"table B { e:U; } root_type B;"
|
||||||
|
"{ e_type: N_A, e: {} }"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConformTest() {
|
void ConformTest() {
|
||||||
|
|||||||
Reference in New Issue
Block a user