Добавление в FlatBuffer

Мы уже используем flatbuffer с похожей схемой

namespace potter;

union Magic { Weapon, Wand }

table Weapon {
   name:string;     
   power:int; 
}

table Wand {
   make:string;
   animal:string;
}

table MagicHolder {   
    name:string;   
    age:int;    
    magic:Magic; 
}

root_type MagicHolder;

Теперь, если мы хотим добавить две вещи.

  1. level:string в MagicHolder
  2. Под Wand key:value тип, где key:string, а также value может быть string or int or float or bool

Что я пытаюсь

table MagicHolder {   
    name:string;   
    age:int; 
    level:string; /*new addition*/  
    magic:Magic; 
}

table KeyValue {
   key:string;  
   vint:int; 
   vfloat:float; 
   vbool:bool; 
   vstring:string;
   vtype:string; /* since I cannot differentiate between bool set or not, trying to store type here */
}

table Wand {
   make:string;
   animal:string;
   kv:KeyValue;  
}

Это лучший подход? Какие бы были плюсы / минусы.. Любые другие рекомендуемые способы сделать это новое дополнение более эффективно

0 ответов

Другие вопросы по тегам