Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pub fn from_binary(binary: &Vec<u8>) -> Result<Network, NetworkError> {
- match binary[0] {
- 1 => Ok(Network::Ping),
- 2 => {
- let username_length = to_u32(&binary[1..4]);
- let password_length = to_u32(&binary[5..8]);
- match get_string(&binary, 9, 9 + username_length) {
- Result::Ok(un) => match get_string(&binary, 9 + username_length, 9 + username_length + password_length) {
- Result::Ok(pw) => Result::Ok(Network::Login{
- username: un,
- password: pw
- }),
- Result::Err(e) => Result::Err(NetworkError::new(e.to_string()))
- },
- Result::Err(e) => Result::Err(NetworkError::new(e.to_string()))
- }
- },
- _ => Result::Err(NetworkError::new(format!("Unknown binary type: {}", binary[0])))
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement