1use rand::Rng;
2
3pub fn generate() -> String {
5 let mut rng = rand::rng(); let len = rng.random_range(4..=6); let mut chars: Vec<char> = Vec::new();
8
9 let charset: Vec<char> = ('A'..='Z')
10 .chain('a'..='z')
11 .chain('0'..='9')
12 .collect();
13
14 for _ in 0..len {
15 let c = charset[rng.random_range(0..charset.len())];
16 chars.push(c);
17 }
18
19 if len > 3 && rng.random_bool(0.5) {
21 let pos = rng.random_range(1..len - 1);
22 chars.insert(pos, '-');
23 }
24
25 chars.iter().collect()
26}