#pragma once #include #include #include namespace Sink { namespace BufferUtils { template static QByteArray extractBuffer(const T *data) { return QByteArray::fromRawData(reinterpret_cast(data->Data()), data->size()); } template static QByteArray extractBufferCopy(const T *data) { return QByteArray(reinterpret_cast(data->Data()), data->size()); } static QByteArray extractBuffer(const flatbuffers::FlatBufferBuilder &fbb) { return QByteArray::fromRawData(reinterpret_cast(fbb.GetBufferPointer()), fbb.GetSize()); } static QList fromVector(const flatbuffers::Vector> &vector) { QList list; for (const flatbuffers::String *data : vector) { Q_ASSERT(data); list << QByteArray::fromStdString(data->str()); } return list; } template static flatbuffers::Offset>> toVector(flatbuffers::FlatBufferBuilder &fbb, const T &list) { std::vector> modifiedPropertiesList; for (const auto &change : list) { auto s = fbb.CreateString(change); modifiedPropertiesList.push_back(s); } return fbb.CreateVector(modifiedPropertiesList); } } }