feat: rewrite pseudonyme generator in rust

This commit is contained in:
2025-04-05 11:49:54 +02:00
parent 722e1da854
commit ba04745609
11 changed files with 64960 additions and 54 deletions

49
src/main.rs Normal file
View File

@@ -0,0 +1,49 @@
use rand::seq::SliceRandom;
use rand::Rng;
use std::env;
use std::io::{BufRead, BufReader};
fn main() {
let num_pseudonyms: usize = {
let args: Vec<String> = env::args().collect();
if args.len() > 1 {
match args[1].parse::<usize>() {
Ok(num) => num,
Err(_) => {
eprintln!("Le nombre de pseudonymes doit être un entier positif.");
std::process::exit(1);
}
}
} else {
100
}
};
let adjectives: Vec<String> = {
BufReader::new(include_str!("../data/adjectives.txt").as_bytes())
.lines()
.filter_map(Result::ok)
.collect()
};
let nouns: Vec<String> = {
BufReader::new(include_str!("../data/nouns.txt").as_bytes())
.lines()
.filter_map(Result::ok)
.collect()
};
let mut rng = rand::thread_rng();
for _ in 0..num_pseudonyms {
let Some(adjective) = adjectives.choose(&mut rng) else {
eprintln!("Impossible de choisir un adjectif.");
std::process::exit(1);
};
let Some(noun) = nouns.choose(&mut rng) else {
eprintln!("Impossible de choisir un nom.");
std::process::exit(1);
};
let number: u32 = rng.gen_range(1..=999);
println!("{}", format!("{}-{}-{}", adjective, noun, number));
}
}