From c5685c48d7eb402282f250c831cb8741b5446df1 Mon Sep 17 00:00:00 2001 From: notohh Date: Sat, 1 Jun 2024 15:37:33 -0400 Subject: [PATCH] use custom charset for random string --- src/randomstring.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/randomstring.rs b/src/randomstring.rs index 97bc829..fef5053 100644 --- a/src/randomstring.rs +++ b/src/randomstring.rs @@ -1,5 +1,6 @@ use clap::Parser; -use rand::{distributions::Alphanumeric, Rng}; +use rand::Rng; +use std::iter; use crate::Args; @@ -8,12 +9,14 @@ pub struct RandomString; impl RandomString { pub fn generate_string(&self) -> String { + const CHARSET: &[u8] = + b"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*"; let args = Args::parse(); - let s: String = rand::thread_rng() - .sample_iter(&Alphanumeric) - .take(args.length) - .map(char::from) - .collect(); + let mut rng = rand::thread_rng(); + let char = || CHARSET[rng.gen_range(0..CHARSET.len())] as char; + + let s: String = iter::repeat_with(char).take(args.length).collect(); + s } }