warlocks_cauldron/providers/spec/
nl.rs1use super::super::dependencies::*;
2
3
4pub struct NetherlandsSpecProvider;
6
7impl NetherlandsSpecProvider {
8 fn is_valid_bsn(number: u32) -> bool {
9 let mut total: i32 = 0;
10 let mut multiplier: i32 = 9;
11
12 for char in number.to_string().chars() {
13 multiplier = match multiplier {
14 1 => -multiplier,
15 other => other,
16 };
17
18 total += char.to_digit(10).unwrap() as i32 * multiplier;
19 multiplier -= 1;
20 }
21
22 return total % 11 == 0
23 }
24
25 pub fn bsn() -> u32 {
27 let (a, b) = (100000000, 999999999);
28
29 loop {
30 let sample = randint(a, b);
31 if Self::is_valid_bsn(sample) {
32 return sample;
33 }
34 }
35 }
36
37 pub fn burgerservicenummer() -> u32 {
39 Self::bsn()
40 }
41}