| 467 | self.reset_write() |
| 468 | |
| 469 | def _serialize( |
| 470 | self, |
| 471 | obj, |
| 472 | buffer: Buffer = None, |
| 473 | buffer_callback=None, |
| 474 | unsupported_callback=None, |
| 475 | ) -> Buffer: |
| 476 | if buffer is None: |
| 477 | self.buffer.set_writer_index(0) |
| 478 | buffer = self.buffer |
| 479 | write_context = self.write_context |
| 480 | write_context.prepare(buffer, buffer_callback=buffer_callback, unsupported_callback=unsupported_callback) |
| 481 | mask_index = buffer.get_writer_index() |
| 482 | buffer.grow(1) |
| 483 | buffer.set_writer_index(mask_index + 1) |
| 484 | bitmap = 1 if self.xlang else 0 |
| 485 | if buffer_callback is not None: |
| 486 | bitmap |= 2 |
| 487 | buffer.put_int8(mask_index, bitmap) |
| 488 | write_context.write_ref(obj) |
| 489 | return buffer |
| 490 | |
| 491 | def enter_flush_barrier(self): |
| 492 | self.write_context.enter_flush_barrier() |