1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
use rand::{Rng, distributions::Alphanumeric};
/// Generate a random string, `length` characters long.
///
/// ## Panics
///
/// Panics if length of `0` passed, as its impossible to have a zero-length `random` string.
///
/// ## Arguments
///
/// * `length` - resulting random string length, must be greater than 0.
///
/// ## Examples
///
/// ```
/// use cs_utils::random_str;
///
/// let result = random_str(8);
///
/// println!("random string \"{}\" generated", &result);
///
/// assert_eq!(
/// result.len(),
/// 8,
/// );
/// ```
pub fn random_str(length: usize) -> String {
assert!(
length > 0,
"Length parameter should be greater than 0.",
);
return rand::thread_rng()
.sample_iter(&Alphanumeric)
.take(length)
.map(char::from)
.collect();
}