warlocks_cauldron/providers/spec/
en.rs

1use super::super::dependencies::*;
2
3
4rust_enum! {
5    pub enum TrackingService(&'static [&'static str]) {
6        USPS = &[
7            "#### #### #### #### ####",
8            "@@ ### ### ### US",
9        ],
10
11        FEDEX = &[
12            "#### #### ####",
13            "#### #### #### ###",
14        ],
15
16        UPS = &[
17            "1Z@####@##########",
18        ],
19    }
20}
21
22
23/// Methods collection provides special data for USA (en)
24pub struct USASpecProvider;
25
26impl USASpecProvider {
27    /// Generate random tracking number
28    pub fn tracking_number(service: TrackingService) -> String {
29        let mask = get_random_element(service.value().iter());
30        custom_code(mask, '@', '#')
31    }
32
33    /// Generate a random, but valid SSN
34    pub fn ssn() -> String {
35        let area = match randint(1, 899) {
36            666 => 665,
37            other => other,
38        };
39
40        format!("{area:03}-{:02}-{:04}", randint(1, 99), randint(1, 9999))
41    }
42}