1pub const ADJECTIVES: &[&str] = &[
12 "cute",
13 "dapper",
14 "large",
15 "small",
16 "long",
17 "short",
18 "thick",
19 "narrow",
20 "deep",
21 "flat",
22 "whole",
23 "low",
24 "high",
25 "near",
26 "far",
27 "fast",
28 "quick",
29 "slow",
30 "early",
31 "late",
32 "bright",
33 "dark",
34 "cloudy",
35 "warm",
36 "cool",
37 "cold",
38 "windy",
39 "noisy",
40 "loud",
41 "quiet",
42 "dry",
43 "clear",
44 "hard",
45 "soft",
46 "heavy",
47 "light",
48 "strong",
49 "weak",
50 "tidy",
51 "clean",
52 "dirty",
53 "empty",
54 "full",
55 "close",
56 "thirsty",
57 "hungry",
58 "fat",
59 "old",
60 "fresh",
61 "dead",
62 "healthy",
63 "sweet",
64 "sour",
65 "bitter",
66 "salty",
67 "good",
68 "bad",
69 "great",
70 "important",
71 "useful",
72 "expensive",
73 "cheap",
74 "free",
75 "difficult",
76 "able",
77 "rich",
78 "afraid",
79 "brave",
80 "fine",
81 "sad",
82 "proud",
83 "comfortable",
84 "happy",
85 "clever",
86 "interesting",
87 "famous",
88 "exciting",
89 "funny",
90 "kind",
91 "polite",
92 "fair",
93 "busy",
94 "lazy",
95 "lucky",
96 "careful",
97 "safe",
98 "dangerous",
99];
100
101pub const NOUNS: &[&str] = &[
104 "rabbit",
105 "badger",
106 "fox",
107 "chicken",
108 "bat",
109 "deer",
110 "snake",
111 "hare",
112 "hedgehog",
113 "platypus",
114 "mole",
115 "mouse",
116 "otter",
117 "rat",
118 "squirrel",
119 "stoat",
120 "weasel",
121 "crow",
122 "dove",
123 "duck",
124 "goose",
125 "hawk",
126 "heron",
127 "kingfisher",
128 "owl",
129 "peacock",
130 "pheasant",
131 "pigeon",
132 "robin",
133 "rook",
134 "sparrow",
135 "starling",
136 "swan",
137 "ant",
138 "bee",
139 "butterfly",
140 "dragonfly",
141 "fly",
142 "moth",
143 "spider",
144 "pike",
145 "salmon",
146 "trout",
147 "frog",
148 "newt",
149 "toad",
150 "crab",
151 "lobster",
152 "clam",
153 "cockle",
154 "mussel",
155 "oyster",
156 "snail",
157 "cow",
158 "dog",
159 "donkey",
160 "goat",
161 "horse",
162 "pig",
163 "sheep",
164 "ferret",
165 "gerbil",
166 "guinea-pig",
167 "parrot",
168 "book",
169 "table",
170 "chair",
171 "lamp",
172 "phone",
173 "computer",
174 "window",
175 "door",
176];
177
178pub const VERBS: &[&str] = &[
181 "sing", "play", "knit", "flounder", "dance", "listen", "run", "talk",
182 "cuddle", "sit", "kiss", "hug", "whimper", "hide", "fight", "whisper",
183 "cry", "snuggle", "walk", "drive", "loiter", "feel", "jump", "hop", "go",
184 "marry", "engage", "sleep", "eat", "drink", "read", "write", "swim", "fly",
185 "climb", "build", "create", "explore", "discover", "learn",
186];
187
188pub const ADVERBS: &[&str] = &[
191 "jovially",
192 "merrily",
193 "cordially",
194 "carefully",
195 "correctly",
196 "eagerly",
197 "easily",
198 "fast",
199 "loudly",
200 "patiently",
201 "quickly",
202 "quietly",
203 "slowly",
204 "gently",
205 "firmly",
206 "softly",
207 "boldly",
208 "bravely",
209 "calmly",
210 "clearly",
211 "closely",
212 "deeply",
213 "directly",
214 "exactly",
215 "fairly",
216 "freely",
217 "fully",
218];
219
220pub const PREPOSITIONS: &[&str] = &[
223 "in", "on", "at", "by", "for", "with", "from", "to", "of", "about",
224 "under", "over", "through", "between", "among", "during", "before",
225 "after", "above", "below", "beside", "behind", "beyond", "within",
226 "without", "across",
227];
228
229#[derive(Debug, Clone, Copy)]
231pub struct DictionaryStats {
232 pub adjectives: usize,
233 pub nouns: usize,
234 pub verbs: usize,
235 pub adverbs: usize,
236 pub prepositions: usize,
237}
238
239impl DictionaryStats {
240 pub const fn new() -> Self {
242 Self {
243 adjectives: ADJECTIVES.len(),
244 nouns: NOUNS.len(),
245 verbs: VERBS.len(),
246 adverbs: ADVERBS.len(),
247 prepositions: PREPOSITIONS.len(),
248 }
249 }
250}
251
252#[derive(Debug, Clone)]
254pub struct Dictionary {
255 pub adjectives: &'static [&'static str],
256 pub nouns: &'static [&'static str],
257 pub verbs: &'static [&'static str],
258 pub adverbs: &'static [&'static str],
259 pub prepositions: &'static [&'static str],
260 pub stats: DictionaryStats,
261}
262
263impl Dictionary {
264 pub const fn new() -> Self {
266 Self {
267 adjectives: ADJECTIVES,
268 nouns: NOUNS,
269 verbs: VERBS,
270 adverbs: ADVERBS,
271 prepositions: PREPOSITIONS,
272 stats: DictionaryStats::new(),
273 }
274 }
275}
276
277impl Default for Dictionary {
278 fn default() -> Self {
279 Self::new()
280 }
281}
282
283pub const fn get_dictionary() -> Dictionary {
285 Dictionary::new()
286}
287
288pub const fn get_dictionary_stats() -> DictionaryStats {
290 DictionaryStats::new()
291}