10 releases

0.2.5 Mar 21, 2024
0.2.4 Mar 20, 2024
0.1.5 Mar 20, 2024

#1402 in Algorithms

Download history 319/week @ 2024-03-14 273/week @ 2024-03-21 63/week @ 2024-03-28 50/week @ 2024-04-04

705 downloads per month

MIT/Apache

8KB
103 lines

About

EasyRandom is a library to help generating random patterns adhering to specific patterns that you want

Suppose we want to generate random strings of pattern "aaaa bbbnnn ccccc" where

  • a -> lower case english alphabets
  • b -> upper case english alphabets
  • c -> Both upper case and lower case english alphabets
  • n -> numbers from 0 to 9
  • s -> custom characters which you can add
  • ' ' -> space
  • '_' -> underscore
let mut sp_gen = EasyRandom::new();
let output=sp_gen.generate(String::from("aaaa bbbnnn ccccc"));

// We get the following random generated String
// poxy BOG737 ovKwQ

If we put any other string other then a,b,c,n we get this string as output:

let  mut  sp_gen  =  EasyRandom::new();
let  output=sp_gen.generate(String::from("aaD")); // here 'D' is invalid
    
// We get this string 
// Please use the characters a(lowercase),b(uppercase),c(upper+lower cases),n(numbers) only to generate random strings

We can exclude any characters if we want through passing a char array or a vector

let mut sp_gen = EasyRandom::new();
sp_gen.exclude_chars(&['a','i','e','o','u']); //removing all the vowels from the generator
for i in 0..10{
    let  output=sp_gen.generate(String::from("aaaaa aaa__aa")); 
    println!("{}",output);
}
/*
tfzvy rfb__rq
bvnvt cfq__xl
tyhkq bwt__cd
twttm krw__th
wqwfc zqd__nq
srjcj wys__mg
qfktg bvs__gs
xkqgf smb__rl
xpgwv dcq__zd
kclkc ggf__vx
*/
//

You can exclude numbers also

let mut sp_gen = EasyRandom::new();
sp_gen.exclude_chars(&['3','1','4','9','2']); //removing all the vowels from the generator
for i in 0..10{
    let  output=sp_gen.generate(String::from("aaaaannnn")); 
    println!("{}",output);
}
/*
rjicw0005
xjgak6067
ihxfw8705
ptlxt8085
pvdcx8788
pkmga6707
xakoy6080
amxyl8608
bkbaz6700
uuluz5785
*/

Usage

You can add it from the terminal

cargo add easy_random 

You can also add this to TOML file

[dependencies]
easy_random = "0.2.5"

Here is the full sample code

use easy_random::EasyRandom;

fn  main(){
    let mut sp_gen = EasyRandom::new();
    // _ and ' ' are passed as it is from pattern
    let output1 = sp_gen.generate(String::from("aa bbb cc__c nnnn"));
    // ks HCP GB__q 6751

    // You can pass a &[char] to exclude characters like vowels
    sp_gen.exclude_chars(&['a','e','i','o','u']); 
    // -----------------------OR-------------------------------
    //  sp_gen.exclude_chars_from_vec(vec!['a','e','i','o','u']);
    let output2 = sp_gen.generate(String::from("aaaaabbbb")); 
    // rynzfVVSG

    // You can use s in the pattern to add you own custom chars
    sp_gen.add_custom_chars_from_vec(vec!['', '', '', '', '', '', '', '', '']);
    // ------------------- OR ---------------------------------
    // sp_gen.add_custom_chars(&['♠', '♣', '♥', '♦', '←', '↑', '→', '↓', '↔']);
    
    let output3 = sp_gen.generate(String::from("aaaa s aaaa"));
    // wtjw ♠ slxf

    // Lets generate a mixed string 
    let output4 = sp_gen.generate(String::from("aa nss___bc"));
}

Todo

  • function exclude some characters
  • Add special characters

Dependencies

~310KB