mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-17 23:06:31 +00:00
C++: mini_reflect: Add DefaultTypeTable (#4614)
* mini_reflect: Add DefaultTypeTable
Currently it's very easy to make a mistake when it comes to
instantiating the TypeTable to print a buffer because it is not type
safe.
This will allow us to write safer cpp code:
flatbuffers::FlatBufferToString(reinterpret_cast<const uint8_t *>(&t),
decltype(t)::DefaultTypeTable());
* c++: mini_reflect: update generated code
* Ensure types and names are set for mini_reflect
* c++: mini_refelct: update unit tests with new typed TypeTable
* Adding PR feedback of sylte and naming convention
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
daf0a420be
commit
36f8564846
@@ -17,6 +17,12 @@ struct MonsterT;
|
||||
struct Weapon;
|
||||
struct WeaponT;
|
||||
|
||||
inline flatbuffers::TypeTable *Vec3TypeTable();
|
||||
|
||||
inline flatbuffers::TypeTable *MonsterTypeTable();
|
||||
|
||||
inline flatbuffers::TypeTable *WeaponTypeTable();
|
||||
|
||||
enum Color {
|
||||
Color_Red = 0,
|
||||
Color_Green = 1,
|
||||
@@ -185,6 +191,9 @@ struct MonsterT : public flatbuffers::NativeTable {
|
||||
|
||||
struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
||||
typedef MonsterT NativeTableType;
|
||||
static flatbuffers::TypeTable *MiniReflectTypeTable() {
|
||||
return MonsterTypeTable();
|
||||
}
|
||||
enum {
|
||||
VT_POS = 4,
|
||||
VT_MANA = 6,
|
||||
@@ -384,6 +393,9 @@ struct WeaponT : public flatbuffers::NativeTable {
|
||||
|
||||
struct Weapon FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
||||
typedef WeaponT NativeTableType;
|
||||
static flatbuffers::TypeTable *MiniReflectTypeTable() {
|
||||
return WeaponTypeTable();
|
||||
}
|
||||
enum {
|
||||
VT_NAME = 4,
|
||||
VT_DAMAGE = 6
|
||||
@@ -603,12 +615,6 @@ inline void EquipmentUnion::Reset() {
|
||||
type = Equipment_NONE;
|
||||
}
|
||||
|
||||
inline flatbuffers::TypeTable *Vec3TypeTable();
|
||||
|
||||
inline flatbuffers::TypeTable *MonsterTypeTable();
|
||||
|
||||
inline flatbuffers::TypeTable *WeaponTypeTable();
|
||||
|
||||
inline flatbuffers::TypeTable *ColorTypeTable() {
|
||||
static flatbuffers::TypeCode type_codes[] = {
|
||||
{ flatbuffers::ET_CHAR, 0, 0 },
|
||||
|
||||
Reference in New Issue
Block a user