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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use super::super::dependencies::*;
rust_enum! {
pub enum TrackingService(&'static [&'static str]) {
USPS = &[
"#### #### #### #### ####",
"@@ ### ### ### US",
],
FEDEX = &[
"#### #### ####",
"#### #### #### ###",
],
UPS = &[
"1Z@####@##########",
],
}
}
pub struct USASpecProvider;
impl USASpecProvider {
pub fn tracking_number(service: TrackingService) -> String {
let mask = get_random_element(service.value().iter());
custom_code(mask, '@', '#')
}
pub fn ssn() -> String {
let area = match randint(1, 899) {
666 => 665,
other => other,
};
format!("{area:03}-{:02}-{:04}", randint(1, 99), randint(1, 9999))
}
}