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
39
40
41
42
43
44
pub mod data;

#[allow(warnings)]
#[macro_use]
pub mod macros {
    /// as_to!() can be used to
    /// convert type
    /// ```rust
    /// use rand_word::*;
    /// println!("{:?}", rand_word::new!(10));// generate 10 random words
    /// ```
    #[macro_export]
    macro_rules! new {
        ($length:expr) => {{
            $crate::new($length)
        }};
    }

    #[macro_export]
    macro_rules! read_data {
        () => {{
            // use useful_macro::*;
            // let data = String::from(&rand_word::data::data::data());
            // let vec = split_to_vec!(data,"\n").iter().map(|s| {
            //      vec_element_clone!(split_to_vec!(s,","),0)
            // }).collect::<Vec<_>>();
            //vec
            $crate::data::data::data()
        }};
    }
}


pub fn new(len:usize) ->String{   
    use rand::Rng;
    let mut re = Vec::new();
    for _i in 0..len{
        let mut rng = rand::thread_rng();
        let words = read_data!();
        let j: usize = rng.gen_range(0..words.len());  
        re.push(format!("{}",words[j]));
    }
    re.join::<_>(" ").to_string()
}