[][src]Constant grp_api::GEN_PWD

pub const GEN_PWD: fn(_: usize, _: usize, _: usize) -> String = |l, s, n| {
    // l: amount of letters [A-Z,a-z], say length - symbol - number
    // s: amount of symbols, say symbol
    // n: amount of numbers [0-9], say number

    let mut rng = rand::thread_rng();
    let data = _DATA();
    let mut PWD =
        vec![
            (l, data.0),
            (s, data.1),
            (n, data.2),
        ]
            .iter()
            .map(|args| {
                _RAND_IDX(args.0, args.1.len()) // generate the random index on corresponding Vec depend on its amount
                    .iter()
                    .map(|idx| args.1[*idx].clone())// index their values in to Vec<String>
                    .collect()
            })
            .fold(vec![], |mut acc, mut x| { acc.append(&mut x); acc });
    // unfold these Vec<Vec<String>> in to Vec<String>
    PWD.shuffle(&mut rng);
    PWD.join("")
}; // {<[closure@src/lib.rs:36:56: 60:2] as std::ops::FnOnce<(usize, usize, usize)>>::call_once as fn(usize, usize, usize) -> std::string::String}