use rand::{
RngExt,
distr::{Alphanumeric, SampleString},
seq::IndexedRandom,
};
const SUBDOMAINS: [&str; 6] = [
"box.mail",
"example",
"email",
"mail",
"mail-services",
"mail.cyberspace",
];
const ROOT_DOMAINS: [&str; 7] = ["app", "com", "dev", "edu", "gov", "net", "org"];
pub(crate) fn gen_email() -> String {
let mut rng = rand::rng();
let num_chars = rng.random_range(1..=16);
let username = Alphanumeric
.sample_string(&mut rng, num_chars)
.to_lowercase();
let subdomain = SUBDOMAINS.choose(&mut rng).unwrap_or(&"example");
let root_domain = ROOT_DOMAINS.choose(&mut rng).unwrap_or(&"com");
format!("{username}@{subdomain}.{root_domain}")
}