pub fn decode_message<P: Protocol>(
source: &[u8],
limits: &Limits,
) -> Result<DecodedMessage<P::Message>, DecodeError>Expand description
Validates the common envelope, bounds, and schema before decoding a payload.
Examples found in repository?
examples/bounded_codec.rs (line 43)
38fn main() -> Result<(), Box<dyn std::error::Error>> {
39 let mut wire = [0_u8; 128];
40 let written = encode_message::<CounterProtocol>(Envelope::new(1, 0, 7, 1), &42, &mut wire)?;
41
42 let limits = Limits::new(128, 16, 1, 16);
43 let decoded = decode_message::<CounterProtocol>(&wire[..written], &limits)?;
44
45 assert_eq!(decoded.message, 42);
46 assert_eq!(decoded.envelope.generation, 7);
47 println!(
48 "decoded counter {} from {} bounded bytes",
49 decoded.message, written
50 );
51 Ok(())
52}