1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
use std::str; pub fn generate_magic_package(mac: &str) -> Result<[u8; 102], bool> { let mut err = false; let mut package :[u8; 102] = [0; 102]; 'outer: for e in 0..17 { for i in 0..6 { if e == 0 { package[i] = 0xff; } else { if let Ok(w) = u8::from_str_radix(mac.get(i*2..i*2+2).unwrap(), 16) { package[i + e * 6] = w; } else { err = true; break 'outer; } } } } if err { Err(false) } else { Ok(package) } }