| 474 | } |
| 475 | |
| 476 | size_t FieldModel<::test::StructSimple>::get_begin() const noexcept |
| 477 | { |
| 478 | if ((_buffer.offset() + fbe_offset() + fbe_size()) > _buffer.size()) |
| 479 | return 0; |
| 480 | |
| 481 | uint32_t fbe_struct_offset = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_offset())); |
| 482 | assert(((fbe_struct_offset > 0) && ((_buffer.offset() + fbe_struct_offset + 4 + 4) <= _buffer.size())) && "Model is broken!"); |
| 483 | if ((fbe_struct_offset == 0) || ((_buffer.offset() + fbe_struct_offset + 4 + 4) > _buffer.size())) |
| 484 | return 0; |
| 485 | |
| 486 | uint32_t fbe_struct_size = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_struct_offset)); |
| 487 | assert((fbe_struct_size >= (4 + 4)) && "Model is broken!"); |
| 488 | if (fbe_struct_size < (4 + 4)) |
| 489 | return 0; |
| 490 | |
| 491 | _buffer.shift(fbe_struct_offset); |
| 492 | return fbe_struct_offset; |
| 493 | } |
| 494 | |
| 495 | void FieldModel<::test::StructSimple>::get_end(size_t fbe_begin) const noexcept |
| 496 | { |