h1emu-core 0.6.5

Utility library used in h1emu.
Documentation
use wasm_bindgen::prelude::*;
use byteorder::{BigEndian,WriteBytesExt};


#[wasm_bindgen]
pub fn session_reply(session_id: u32, crc_seed: u32,crc_length: u8,compression: u16,udp_length: u32) -> std::vec::Vec<u8>{
    let mut wtr = vec![];
    wtr.write_u16::<BigEndian>(0x02).unwrap();
    wtr.write_u32::<BigEndian>(session_id).unwrap();
    wtr.write_u32::<BigEndian>(crc_seed ).unwrap();
    wtr.write_u8(crc_length).unwrap();
    wtr.write_u16::<BigEndian>(compression).unwrap();
    wtr.write_u32::<BigEndian>(udp_length).unwrap();
    wtr.write_u32::<BigEndian>(3).unwrap();
    return wtr;
}

#[cfg(test)]
mod tests {
    use super::*;
    #[test]
    fn session_reply_test() {
        let data:Vec<u8> = session_reply(255993749, 0, 2, 256, 512);
        assert_eq!(data, [0, 2, 15, 66, 39, 149, 0, 0, 0, 0, 2, 1, 0, 0, 0, 2, 0, 0, 0, 0, 3])
    }
}