use rand::seq::SliceRandom;
use std::string::FromUtf8Error;
const BASE_STR: &str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^";
fn gen_string(size: usize) -> Result<String, FromUtf8Error> {
let mut rng = &mut rand::thread_rng();
let s = String::from_utf8(
BASE_STR
.as_bytes()
.choose_multiple(&mut rng, size)
.cloned()
.collect(),
)?;
Ok(s)
}
pub fn gen_rand_string(size: usize) -> Option<String> {
if size > 0 {
match gen_string(size) {
Ok(s) => Some(s),
_ => None,
}
} else {
panic!("Interger must be greater than 0");
}
}