warlocks_cauldron/providers/spec/
it.rs1use super::super::dependencies::*;
2
3
4pub struct ItalySpecProvider;
6
7impl ItalySpecProvider {
8 pub fn fiscal_code(gender: Option<Gender>) -> String {
10 let mut code = generate_string("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
11 code.push_str(&custom_code("##", '@', '#'));
12
13 let fiscal_code = crate::data::parsed::IT.builtin.get("fiscal_code").unwrap()
14 .as_object().unwrap();
15
16 code.push_str(
17 get_random_element(fiscal_code
18 .get("month_codes").unwrap()
19 .as_array().unwrap()
20 .into_iter().map(|c| c.as_str().unwrap())
21 )
22 );
23
24 let mut birth_day = randint(101, 131);
25 if validate_variant(gender, None) == Gender::FEMALE {
26 birth_day += 40;
27 }
28
29 code.push_str(&birth_day.to_string()[1..]);
30
31 code.push_str(
32 get_random_element(fiscal_code
33 .get("city_letters").unwrap()
34 .as_array().unwrap()
35 .into_iter().map(|c| c.as_str().unwrap())
36 )
37 );
38
39 code.push_str(&custom_code("###@", '#', '@'));
40
41 code
42 }
43}