Нет, не совсем.
Используя API отражения, можно добавить новые таблицы в существующий буфер, а затем изменить размер вектора, такого как sublayers
, и заставить элементы указывать на новое (или старые) таблицы.Но в настоящее время нет способа удалить старые таблицы, и API довольно болезненно использовать, а изменение размера происходит медленно (мутация сложных плоских структур на месте затруднена).
Или вы можете создать новый буферс нуля, и если вы хотите сэкономить на написании кода ручного копирования для деталей, которые вы не модифицируете, вы можете снова использовать API отражения (CopyTable
) или объектный API для копирования остатка.
Если вы обнаружите, что часто хотите изменить одну часть буфера, но не остальную, может быть ... они должны быть в 2 разных буферах?
Если статические данные должны находиться в том же буфере, что и динамическиеДля данных по какой-то причине один из подходов состоит в том, чтобы поместить статические данные в nested_flatbuffer
, чтобы вы могли перенести их в новый буфер с одним memcpy
.
Боюсь, использование объектного API - это ваша лучшая ставка в среднем.