(self, obj, serializer=None, typeinfo=None)
| 320 | self.write_non_ref(obj, serializer=serializer, typeinfo=typeinfo) |
| 321 | |
| 322 | def write_non_ref(self, obj, serializer=None, typeinfo=None): |
| 323 | if serializer is not None: |
| 324 | self.increase_depth() |
| 325 | serializer.write(self, obj) |
| 326 | self.decrease_depth() |
| 327 | return |
| 328 | cls = type(obj) |
| 329 | if cls is str: |
| 330 | self.buffer.write_uint8(STRING_TYPE_ID) |
| 331 | self.buffer.write_string(obj) |
| 332 | return |
| 333 | if cls is int: |
| 334 | self.buffer.write_uint8(INT64_TYPE_ID) |
| 335 | self.buffer.write_varint64(obj) |
| 336 | return |
| 337 | if cls is bool: |
| 338 | self.buffer.write_uint8(BOOL_TYPE_ID) |
| 339 | self.buffer.write_bool(obj) |
| 340 | return |
| 341 | if cls is float: |
| 342 | self.buffer.write_uint8(FLOAT64_TYPE_ID) |
| 343 | self.buffer.write_double(obj) |
| 344 | return |
| 345 | if typeinfo is None: |
| 346 | typeinfo = self.type_resolver.get_type_info(cls) |
| 347 | self.type_resolver.write_type_info(self, typeinfo) |
| 348 | self.increase_depth() |
| 349 | typeinfo.serializer.write(self, obj) |
| 350 | self.decrease_depth() |
| 351 | |
| 352 | def write_no_ref(self, obj, serializer=None, typeinfo=None): |
| 353 | self.write_non_ref(obj, serializer=serializer, typeinfo=typeinfo) |
no test coverage detected