Decode a versioned-envelope-wrapped [`SyncFrame`]. Requires a v2 versioned envelope; rejects bytes without the envelope marker and envelopes with unsupported future version numbers.
(data: &[u8])
| 34 | /// Requires a v2 versioned envelope; rejects bytes without the envelope marker |
| 35 | /// and envelopes with unsupported future version numbers. |
| 36 | pub fn decode_versioned_sync_frame(data: &[u8]) -> Result<SyncFrame> { |
| 37 | let inner = unwrap_bytes_versioned(data).map_err(|e| ClusterError::Codec { |
| 38 | detail: format!("SyncFrame versioned decode: {e}"), |
| 39 | })?; |
| 40 | SyncFrame::from_bytes(inner).ok_or_else(|| ClusterError::Codec { |
| 41 | detail: "SyncFrame::from_bytes failed: malformed or truncated frame".to_string(), |
| 42 | }) |
| 43 | } |
| 44 | |
| 45 | #[cfg(test)] |
| 46 | mod tests { |