mldkyt_uwurandom_rs/
lib.rs1pub struct Uwurandom {}
6
7impl Uwurandom {
8 fn abs(i: i32) -> i32 {
9 return if i < 0 { -i } else { i };
10 }
11 pub fn generate(num: i32) -> String {
12 let actions = [
13 "*tilts head*",
14 "*twitches ears slightly*",
15 "*purrs*",
16 "*falls asleep*",
17 "*sits on ur keyboard*",
18 "*nuzzles*",
19 "*stares at u*",
20 "*points towards case of monster zero ultra*",
21 "*sneezes*",
22 "*plays with yarn*",
23 "*eats all ur doritos*",
24 "*lies down on a random surface*",
25 ];
26 let nonsense = [
27 "aa", "am", "an", "ao", "eo", "ew", "me", "mr", "ny", "ow", "pp", "pu", "ra", "re",
28 "rm", "rn", "ro", "rp", "rw", "ur", "wm", "wn", "wp", "wr", "ww", "ya",
29 ];
30 let mut string = String::new();
31
32 while num > string.len() as i32 {
33 let random = Uwurandom::abs(rand::random::<i32>() % 10);
34 match random {
35 0 => {
36 string.push_str("uwu");
37 }
38 1 => {
39 let random_2 = Uwurandom::abs(rand::random::<i32>() % 21) + 5;
40 for _ in 0..random_2 {
41 let random_3 =
42 Uwurandom::abs(rand::random::<i32>() % nonsense.len() as i32);
43 string.push_str(nonsense[random_3 as usize]);
44 }
45 }
46 2 => {
47 let random_2 = Uwurandom::abs(rand::random::<i32>() % 4) + 3;
48 string.push_str("ny");
49 for _ in 0..random_2 {
50 string.push_str("a");
51 }
52
53 string.push_str("~");
54 }
55 3 => {
56 let random_2 = Uwurandom::abs(rand::random::<i32>() % 3) + 3;
57 string.push_str(">");
58 for _ in 0..random_2 {
59 string.push_str("/");
60 }
61
62 string.push_str("<");
63 }
64 4 => {
65 string.push_str(":3");
66 }
67 5 => {
68 let random_2 = Uwurandom::abs(rand::random::<i32>() % actions.len() as i32);
69 string.push_str(actions[random_2 as usize]);
70 }
71 6 => {
72 let random_2 = Uwurandom::abs(rand::random::<i32>() % 21) + 5;
73 for _ in 0..random_2 {
74 let random_3 = char::from_u32(
75 (Uwurandom::abs(rand::random::<i32>() % 26) + 97)
76 .try_into()
77 .unwrap(),
78 )
79 .unwrap();
80 string.push_str(random_3.to_string().as_str());
81 }
82 }
83 7 => {
84 let random_2 = Uwurandom::abs(rand::random::<i32>() % 3) + 3;
85 for _ in 0..random_2 {
86 string.push_str("A");
87 }
88 }
89 8 => {
90 string.push_str("aw");
91 let random_2 = Uwurandom::abs(rand::random::<i32>() % 21) + 5;
92 for _ in 0..random_2 {
93 let random_3 = char::from_u32(
94 (Uwurandom::abs(rand::random::<i32>() % 26) + 97)
95 .try_into()
96 .unwrap(),
97 )
98 .unwrap();
99 string.push_str(random_3.to_string().as_str());
100 }
101 }
102 9 => {
103 string.push_str("owo");
104 }
105 default => {
106 panic!(
107 "uwurandom::generate() the condition {} should never happen",
108 default
109 )
110 }
111 }
112
113 string.push_str(" ");
114 }
115
116 return string;
117 }
118}