use rand::prelude::*;
pub fn name() -> String {
let first_name = vec![
"Alan", "João", "Fabio", "Emanuel", "Nicolas", "Luiza", "Gabriele",
];
let last_name = vec![
"Silva", "Sampaio", "Kalinay", "Alvez", "Katte", "Oliveira", "Guedes",
];
return format!(
"{} {}",
first_name[rand::rng().random_range(0..last_name.len())],
last_name[rand::rng().random_range(0..last_name.len())]
);
}
pub fn cpf() -> String {
let mut initial: Vec<usize>;
loop {
initial = vec![
rand::rng().random_range(0..10),
rand::rng().random_range(0..10),
rand::rng().random_range(0..10),
rand::rng().random_range(0..10),
rand::rng().random_range(0..10),
rand::rng().random_range(0..10),
rand::rng().random_range(0..10),
rand::rng().random_range(0..10),
rand::rng().random_range(0..10),
];
let reversed: Vec<usize> = initial.iter().copied().rev().collect();
if initial != reversed {
break;
}
}
for i in 9..11 {
let mut value: Vec<usize> = vec![];
for num in 0..i {
value.append(&mut vec![initial[num] * ((i + 1) - num)]);
}
let sum: usize = value.iter().sum();
let digit: usize = ((sum * 10) % 11) % 10;
initial.append(&mut vec![digit]);
}
return initial.iter().map(ToString::to_string).collect();
}