Skip to main content

decode_message

Function decode_message 

Source
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}