I am using nothing but rmp in this case. I have tried #[repr(u8)] and adding pub to the enum.
As you guess, I am very new to rust.
enum PacketType {
Connect,
Ping,
ChangeKeys {
cipher_key: Vec<u8>,
},
Disconnect {
error_code: bool,
},
...
fn encode_connect(client_type: u8, key: Vec<u8>) -> Vec<u8> {
let mut buf = Vec::new();
rmp::encode::write_u8(&mut buf, PacketType::Connect as u8).unwrap();
rmp::encode::write_bin(&mut buf, &key.into_raw_parts())
}