use rand::seq::SliceRandom; // choose
use std::collections::HashSet;
fn generate_unique_random_string(total: usize) -> String {
let chars: Vec<char> = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".chars().collect();
let mut used_chars = HashSet::new();
let mut result = String::new();
let mut rng = rand::thread_rng();
while result.len() < total {
let &random_char = chars.choose(&mut rng).unwrap();
if used_chars.insert(random_char) {
result.push(random_char);
}
}
result
}
fn main() {
println!("{}", generate_unique_random_string(15));
}
/*
run:
eThP9niWV65x8aU
*/