| 566 | |
| 567 | #[inline(always)] |
| 568 | fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<()> |
| 569 | where |
| 570 | T: Serialize, |
| 571 | { |
| 572 | // Safety: Make sure serialize_value is called at most once after each serialize_key. |
| 573 | assert!( |
| 574 | std::mem::take(&mut self.key_serialized), |
| 575 | "serialize_value before serialize_key" |
| 576 | ); |
| 577 | value.serialize(EncoderWrapper { |
| 578 | lazy: &mut self.encoders.1, |
| 579 | index_alloc: &mut *self.index_alloc, |
| 580 | }) |
| 581 | } |
| 582 | // TODO implement serialize_entry to avoid checking key_serialized. |
| 583 | } |
| 584 | |