MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / serialize

Method serialize

proto/enums_final_models.cpp:1275–1293  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1273}
1274
1275size_t EnumsFinalModel::serialize(const ::enums::Enums& value)
1276{
1277 size_t fbe_initial_size = this->buffer().size();
1278
1279 uint32_t fbe_struct_type = (uint32_t)fbe_type();
1280 uint32_t fbe_struct_size = (uint32_t)(8 + _model.fbe_allocation_size(value));
1281 uint32_t fbe_struct_offset = (uint32_t)(this->buffer().allocate(fbe_struct_size) - this->buffer().offset());
1282 assert(((this->buffer().offset() + fbe_struct_offset + fbe_struct_size) <= this->buffer().size()) && "Model is broken!");
1283 if ((this->buffer().offset() + fbe_struct_offset + fbe_struct_size) > this->buffer().size())
1284 return 0;
1285
1286 fbe_struct_size = (uint32_t)(8 + _model.set(value));
1287 this->buffer().resize(fbe_initial_size + fbe_struct_size);
1288
1289 *((uint32_t*)(this->buffer().data() + this->buffer().offset() + _model.fbe_offset() - 8)) = fbe_struct_size;
1290 *((uint32_t*)(this->buffer().data() + this->buffer().offset() + _model.fbe_offset() - 4)) = fbe_struct_type;
1291
1292 return fbe_struct_size;
1293}
1294
1295size_t EnumsFinalModel::deserialize(::enums::Enums& value) const noexcept
1296{

Callers

nothing calls this directly

Calls 9

sizeMethod · 0.45
bufferMethod · 0.45
fbe_allocation_sizeMethod · 0.45
allocateMethod · 0.45
offsetMethod · 0.45
setMethod · 0.45
resizeMethod · 0.45
dataMethod · 0.45
fbe_offsetMethod · 0.45

Tested by

no test coverage detected