(&self, buf: &mut Vec<u8>)
| 39 | #[cfg(feature = "alloc")] |
| 40 | #[cfg_attr(docsrs, doc(cfg(feature = "alloc")))] |
| 41 | fn encode_to_vec(&self, buf: &mut Vec<u8>) -> Result<Length> { |
| 42 | let expected_len = usize::try_from(self.encoded_len()?)?; |
| 43 | buf.reserve(expected_len); |
| 44 | buf.extend(iter::repeat(0).take(expected_len)); |
| 45 | |
| 46 | let mut writer = SliceWriter::new(buf); |
| 47 | self.encode(&mut writer)?; |
| 48 | let actual_len = writer.finish()?.len(); |
| 49 | |
| 50 | if expected_len != actual_len { |
| 51 | return Err(ErrorKind::Incomplete { |
| 52 | expected_len: expected_len.try_into()?, |
| 53 | actual_len: actual_len.try_into()?, |
| 54 | } |
| 55 | .into()); |
| 56 | } |
| 57 | |
| 58 | actual_len.try_into() |
| 59 | } |
| 60 | |
| 61 | /// Serialize this message as a byte vector. |
| 62 | #[cfg(feature = "alloc")] |
no test coverage detected