| 249 | } |
| 250 | |
| 251 | size_t OrderFinalModel::deserialize(::protoex::Order& value) const noexcept |
| 252 | { |
| 253 | assert(((this->buffer().offset() + _model.fbe_offset()) <= this->buffer().size()) && "Model is broken!"); |
| 254 | if ((this->buffer().offset() + _model.fbe_offset()) > this->buffer().size()) |
| 255 | return 0; |
| 256 | |
| 257 | size_t fbe_struct_size = *((const uint32_t*)(this->buffer().data() + this->buffer().offset() + _model.fbe_offset() - 8)); |
| 258 | size_t fbe_struct_type = *((const uint32_t*)(this->buffer().data() + this->buffer().offset() + _model.fbe_offset() - 4)); |
| 259 | assert(((fbe_struct_size > 0) && (fbe_struct_type == fbe_type())) && "Model is broken!"); |
| 260 | if ((fbe_struct_size == 0) || (fbe_struct_type != fbe_type())) |
| 261 | return 8; |
| 262 | |
| 263 | return 8 + _model.get(value); |
| 264 | } |
| 265 | |
| 266 | } // namespace protoex |
| 267 | |