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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
mod stuff;
mod script;
pub use script::script;
pub fn sentence(num: i32) -> String {
    let script = script();
    let mut split: Vec<&str> = script.split('.').collect();
    split.retain(|&str| str != ".");
    split.retain(|&str| str != " .");
    split.retain(|&str| str != " . ");
    split.retain(|&str| str != ". ");
    split.retain(|&str| !str.is_empty());
    split.retain(|&str| str != " ");
    let mut vector = Vec::<String>::new();
    for item in &split {
        vector.push(item.to_string());
    }
    stuff::multiply_sentences(num, vector)
}

pub fn word(num: i32) -> String {
    let mut script = script();
    script = script.replace(&['.', '?', '!', '?', ','][..], "");
    let mut split: Vec<&str> = script.split(' ').collect();
    split.retain(|&str| !str.is_empty());
    let mut vector = Vec::<String>::new();
    for item in &split {
        vector.push(item.to_string());
    }
    stuff::multiply_words(num, vector)
}

pub fn paragraph(num: i32) -> String {
    let script = script();
    let mut split: Vec<&str> = script.split('.').collect();
    split.retain(|&str| str != ".");
    split.retain(|&str| str != " .");
    split.retain(|&str| str != " . ");
    split.retain(|&str| str != ". ");
    split.retain(|&str| !str.is_empty());
    split.retain(|&str| str != " ");
    let mut vector = Vec::<String>::new();
    for item in &split {
        vector.push(item.to_string());
    }
    stuff::paragraph(num, vector)
}

pub fn version() -> String {
    "1.0.1".to_string()
}

#[cfg(test)]
mod tests {
    use super::*;
    #[test]
    fn test() {
        sentence(1);
        script();
        word(1);
        paragraph(1);
    }
}