geekorm_core/utils/crypto/rand.rs
1use rand::Rng;
2
3/// Character set for generating random strings
4pub const CHARSET: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\
5 abcdefghijklmnopqrstuvwxyz\
6 0123456789";
7
8/// Generate a random string of a given length
9pub fn generate_random_string(length: usize, prefix: impl Into<String>) -> String {
10 let mut rng = rand::thread_rng();
11 let mut random_string = String::new();
12 // Generate a random string of the given length using uppercase, lowercase and numbers
13 for _ in 0..length {
14 let random_char = CHARSET[rng.gen_range(0..CHARSET.len())] as char;
15 random_string.push(random_char);
16 }
17 prefix.into() + &random_string
18}