data_faking/data/it/
mac_address.rs

1use crate::utils::seeder;
2use wasm_bindgen::prelude::*;
3
4#[wasm_bindgen]
5pub fn mac_address(prefix: Option<String>) -> String {
6  let mut mac_builder: Vec<i32> = vec![];
7  if let Some(arg) = prefix {
8    let tokens = arg.split(":");
9    for t in tokens {
10      let mut i: i32 = i32::from_str_radix(t, 16).unwrap();
11
12      if i > MAC_RANGE_MAX {
13        i = MAC_RANGE_MAX;
14      }
15      mac_builder.push(i);
16    }
17  }
18
19  for _ in 0..(MAC_SEGMENT_NUM-mac_builder.len()) {
20    mac_builder.push(seeder::gen_range(MAC_RANGE_MIN..MAC_RANGE_MAX));
21  }
22
23  let mut mac_tokens: Vec<String> = vec![];
24  for i in mac_builder {
25    mac_tokens.push(format!("{:x}", i));
26  }
27  let s = mac_tokens.join(":");
28  s
29}
30
31static MAC_RANGE_MIN: i32 = 0;
32static MAC_RANGE_MAX: i32 = 256;
33static MAC_SEGMENT_NUM: usize = 6;