mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-03 20:31:23 +00:00
Added nested FlexBuffer parsing
Change-Id: I918b66eb5646d035e3aae675f745802eb54b03ea
This commit is contained in:
@@ -97,6 +97,9 @@ class CppGenerator : public BaseGenerator {
|
||||
code_ += "";
|
||||
|
||||
code_ += "#include \"flatbuffers/flatbuffers.h\"";
|
||||
if (parser_.uses_flexbuffers_) {
|
||||
code_ += "#include \"flatbuffers/flexbuffers.h\"";
|
||||
}
|
||||
code_ += "";
|
||||
|
||||
if (parser_.opts.include_dependence_headers) {
|
||||
@@ -1335,11 +1338,19 @@ class CppGenerator : public BaseGenerator {
|
||||
code_.SetValue("CPP_NAME", TranslateNameSpace(qualified_name));
|
||||
|
||||
code_ += " const {{CPP_NAME}} *{{FIELD_NAME}}_nested_root() const {";
|
||||
code_ += " const uint8_t* data = {{FIELD_NAME}}()->Data();";
|
||||
code_ += " auto data = {{FIELD_NAME}}()->Data();";
|
||||
code_ += " return flatbuffers::GetRoot<{{CPP_NAME}}>(data);";
|
||||
code_ += " }";
|
||||
}
|
||||
|
||||
if (field.attributes.Lookup("flexbuffer")) {
|
||||
code_ += " flexbuffers::Reference {{FIELD_NAME}}_flexbuffer_root()"
|
||||
" const {";
|
||||
code_ += " auto v = {{FIELD_NAME}}();";
|
||||
code_ += " return flexbuffers::GetRoot(v->Data(), v->size());";
|
||||
code_ += " }";
|
||||
}
|
||||
|
||||
// Generate a comparison function for this field if it is a key.
|
||||
if (field.key) {
|
||||
const bool is_string = (field.value.type.base_type == BASE_TYPE_STRING);
|
||||
|
||||
Reference in New Issue
Block a user