pub struct Headers; impl Headers { pub const MESSAGE: u8 = 0x01; pub const ASK_NAME: u8 = 0x02; pub const TELL_NAME: u8 = 0x03; pub const FILE: u8 = 0x04; } pub fn new_message(message: String) -> Vec { [&[Headers::MESSAGE], message.as_bytes()].concat() } pub fn ask_name() -> Vec { vec![Headers::ASK_NAME] } pub fn tell_name(name: &str) -> Vec { [&[Headers::TELL_NAME], name.as_bytes()].concat() } pub fn file(file_name: &str, buffer: &[u8]) -> Vec { [&[Headers::FILE], &(file_name.len() as u16).to_be_bytes()[..], file_name.as_bytes(), buffer].concat() }