feat: rewrite pseudonyme generator in rust
This commit is contained in:
49
src/main.rs
Normal file
49
src/main.rs
Normal 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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user