Skip to main content

decode_message

Function decode_message 

Source
pub fn decode_message<'t, 'b, L>(
    tokens: &'t [Token],
    msg_buf: &'b [u8],
    block_length: usize,
    acting_version: i32,
    listener: &mut L,
) -> &'b [u8] 
where L: TokenListener,
Examples found in repository?
examples/dec.rs (line 39)
14fn main() -> anyhow::Result<()> {
15    let args = args().skip(1).take(2).collect::<Vec<_>>();
16    let mut schema_file = File::open(&args[0])?;
17    let mut message_file = File::open(&args[1])?;
18
19    let mut svbuf = Vec::new();
20    schema_file.read_to_end(&mut svbuf)?;
21
22    let mut msg_buf = Vec::new();
23    message_file.read_to_end(&mut msg_buf)?;
24
25    let tokens = tokenize(&svbuf);
26
27    for t in &tokens {
28        println!("{t:?}");
29    }
30
31    let mut l = MyListener::default();
32    // let mut it = tokens.into_iter();
33    println!("=== header ===");
34    let mut x = MessageHeaderListener::new(&mut l);
35    let (tokens, msg_buf) = decode_header(&tokens, &msg_buf, 0, &mut x);
36    let h = x.into_message_header()?;
37    println!("{h:?}");
38    println!("=== message ===");
39    let msg_buf = decode_message(&tokens, msg_buf, h.block_length, h.version as i32, &mut l);
40
41    Ok(())
42}