Encode the envelope for storage in `HashedChange.metadata`. Format: `[MAGIC: 4 bytes][postcard payload]` # Errors Returns `AgentError::EnvelopeCodecError` if postcard serialization fails.
(&self)
| 230 | /// |
| 231 | /// Returns `AgentError::EnvelopeCodecError` if postcard serialization fails. |
| 232 | pub fn encode(&self) -> AgentResult<Vec<u8>> { |
| 233 | let payload = postcard::to_allocvec(self).map_err(|e| AgentError::EnvelopeCodecError { |
| 234 | reason: format!("postcard serialize failed: {}", e), |
| 235 | })?; |
| 236 | |
| 237 | let mut buf = Vec::with_capacity(MAGIC.len() + payload.len()); |
| 238 | buf.extend_from_slice(MAGIC); |
| 239 | buf.extend_from_slice(&payload); |
| 240 | Ok(buf) |
| 241 | } |
| 242 | |
| 243 | /// Decode a `SessionEnvelope` from `HashedChange.metadata` bytes. |
| 244 | /// |