Advertisement
Guest User

Untitled

a guest
Jul 1st, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.73 KB | None | 0 0
  1. pub fn from_binary(binary: &Vec<u8>) -> Result<Network, NetworkError> {
  2.     match binary[0] {
  3.         1 => Ok(Network::Ping),
  4.         2 => {
  5.             let username_length = to_u32(&binary[1..4]);
  6.             let password_length = to_u32(&binary[5..8]);
  7.             match get_string(&binary, 9, 9 + username_length) {
  8.                 Result::Ok(un) => match get_string(&binary, 9 + username_length, 9 + username_length + password_length) {
  9.                     Result::Ok(pw) => Result::Ok(Network::Login{
  10.                         username: un,
  11.                         password: pw
  12.                     }),
  13.                     Result::Err(e) => Result::Err(NetworkError::new(e.to_string()))
  14.                 },
  15.                 Result::Err(e) => Result::Err(NetworkError::new(e.to_string()))
  16.             }
  17.         },
  18.         _ => Result::Err(NetworkError::new(format!("Unknown binary type: {}", binary[0])))
  19.     }
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement