1#[allow(unused_imports)]
2use once_cell::sync::Lazy;
3use paste::paste;
4
5#[derive(Debug, Clone)]
9pub struct SpinnerFrames {
10 pub frames: Vec<&'static str>,
11 pub interval: u16,
12}
13
14macro_rules! spinner_frames {
15 ( $name:expr, [ $( $frame:expr ),* ], $interval:expr ) => {
16 paste! {
17 #[cfg(feature = $name)]
18 pub struct [< $name:camel >];
19
20 #[cfg(feature = $name)]
21 impl From<[< $name:camel >]> for SpinnerFrames {
22 fn from(_: [< $name:camel >]) -> SpinnerFrames {
23 #[cfg(feature = $name)]
24 [< $name:upper >].clone()
25 }
26 }
27
28 #[cfg(feature = $name)]
29 static [< $name:upper >]: Lazy<SpinnerFrames>
30 = Lazy::new(|| SpinnerFrames {
31 interval: $interval,
32 frames: vec![$($frame),*]
33 });
34 }
35 };
36}
37
38spinner_frames!(
39 "dots",
40 ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"],
41 80
42);
43
44spinner_frames!("dots2", ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"], 80);
45
46spinner_frames!(
47 "dots3",
48 ["⠋", "⠙", "⠚", "⠞", "⠖", "⠦", "⠴", "⠲", "⠳", "⠓"],
49 80
50);
51
52spinner_frames!(
53 "dots4",
54 [
55 "⠄", "⠆", "⠇", "⠋", "⠙", "⠸", "⠰", "⠠", "⠰", "⠸", "⠙", "⠋", "⠇", "⠆"
56 ],
57 80
58);
59
60spinner_frames!(
61 "dots5",
62 [
63 "⠋", "⠙", "⠚", "⠒", "⠂", "⠂", "⠒", "⠲", "⠴", "⠦", "⠖", "⠒", "⠐", "⠐", "⠒", "⠓", "⠋"
64 ],
65 80
66);
67
68spinner_frames!(
69 "dots6",
70 [
71 "⠁", "⠉", "⠙", "⠚", "⠒", "⠂", "⠂", "⠒", "⠲", "⠴", "⠤", "⠄", "⠄", "⠤", "⠴", "⠲", "⠒", "⠂",
72 "⠂", "⠒", "⠚", "⠙", "⠉", "⠁"
73 ],
74 80
75);
76
77spinner_frames!(
78 "dots7",
79 [
80 "⠈", "⠉", "⠋", "⠓", "⠒", "⠐", "⠐", "⠒", "⠖", "⠦", "⠤", "⠠", "⠠", "⠤", "⠦", "⠖", "⠒", "⠐",
81 "⠐", "⠒", "⠓", "⠋", "⠉", "⠈"
82 ],
83 80
84);
85spinner_frames!(
86 "dots8",
87 [
88 "⠁", "⠁", "⠉", "⠙", "⠚", "⠒", "⠂", "⠂", "⠒", "⠲", "⠴", "⠤", "⠄", "⠄", "⠤", "⠠", "⠠", "⠤",
89 "⠦", "⠖", "⠒", "⠐", "⠐", "⠒", "⠓", "⠋", "⠉", "⠈", "⠈"
90 ],
91 80
92);
93spinner_frames!("dots9", ["⢹", "⢺", "⢼", "⣸", "⣇", "⡧", "⡗", "⡏"], 80);
94spinner_frames!("dots10", ["⢄", "⢂", "⢁", "⡁", "⡈", "⡐", "⡠"], 80);
95spinner_frames!("dots11", ["⠁", "⠂", "⠄", "⡀", "⢀", "⠠", "⠐", "⠈"], 80);
96spinner_frames!(
97 "dots12",
98 [
99 "⢀⠀", "⡀⠀", "⠄⠀", "⢂⠀", "⡂⠀", "⠅⠀", "⢃⠀", "⡃⠀", "⠍⠀", "⢋⠀", "⡋⠀", "⠍⠁", "⢋⠁", "⡋⠁", "⠍⠉",
100 "⠋⠉", "⠋⠉", "⠉⠙", "⠉⠙", "⠉⠩", "⠈⢙", "⠈⡙", "⢈⠩", "⡀⢙", "⠄⡙", "⢂⠩", "⡂⢘", "⠅⡘", "⢃⠨", "⡃⢐",
101 "⠍⡐", "⢋⠠", "⡋⢀", "⠍⡁", "⢋⠁", "⡋⠁", "⠍⠉", "⠋⠉", "⠋⠉", "⠉⠙", "⠉⠙", "⠉⠩", "⠈⢙", "⠈⡙", "⠈⠩",
102 "⠀⢙", "⠀⡙", "⠀⠩", "⠀⢘", "⠀⡘", "⠀⠨", "⠀⢐", "⠀⡐", "⠀⠠", "⠀⢀", "⠀⡀"
103 ],
104 80
105);
106spinner_frames!(
107 "dots8bit",
108 [
109 "⠀", "⠁", "⠂", "⠃", "⠄", "⠅", "⠆", "⠇", "⡀", "⡁", "⡂", "⡃", "⡄", "⡅", "⡆", "⡇", "⠈", "⠉",
110 "⠊", "⠋", "⠌", "⠍", "⠎", "⠏", "⡈", "⡉", "⡊", "⡋", "⡌", "⡍", "⡎", "⡏", "⠐", "⠑", "⠒", "⠓",
111 "⠔", "⠕", "⠖", "⠗", "⡐", "⡑", "⡒", "⡓", "⡔", "⡕", "⡖", "⡗", "⠘", "⠙", "⠚", "⠛", "⠜", "⠝",
112 "⠞", "⠟", "⡘", "⡙", "⡚", "⡛", "⡜", "⡝", "⡞", "⡟", "⠠", "⠡", "⠢", "⠣", "⠤", "⠥", "⠦", "⠧",
113 "⡠", "⡡", "⡢", "⡣", "⡤", "⡥", "⡦", "⡧", "⠨", "⠩", "⠪", "⠫", "⠬", "⠭", "⠮", "⠯", "⡨", "⡩",
114 "⡪", "⡫", "⡬", "⡭", "⡮", "⡯", "⠰", "⠱", "⠲", "⠳", "⠴", "⠵", "⠶", "⠷", "⡰", "⡱", "⡲", "⡳",
115 "⡴", "⡵", "⡶", "⡷", "⠸", "⠹", "⠺", "⠻", "⠼", "⠽", "⠾", "⠿", "⡸", "⡹", "⡺", "⡻", "⡼", "⡽",
116 "⡾", "⡿", "⢀", "⢁", "⢂", "⢃", "⢄", "⢅", "⢆", "⢇", "⣀", "⣁", "⣂", "⣃", "⣄", "⣅", "⣆", "⣇",
117 "⢈", "⢉", "⢊", "⢋", "⢌", "⢍", "⢎", "⢏", "⣈", "⣉", "⣊", "⣋", "⣌", "⣍", "⣎", "⣏", "⢐", "⢑",
118 "⢒", "⢓", "⢔", "⢕", "⢖", "⢗", "⣐", "⣑", "⣒", "⣓", "⣔", "⣕", "⣖", "⣗", "⢘", "⢙", "⢚", "⢛",
119 "⢜", "⢝", "⢞", "⢟", "⣘", "⣙", "⣚", "⣛", "⣜", "⣝", "⣞", "⣟", "⢠", "⢡", "⢢", "⢣", "⢤", "⢥",
120 "⢦", "⢧", "⣠", "⣡", "⣢", "⣣", "⣤", "⣥", "⣦", "⣧", "⢨", "⢩", "⢪", "⢫", "⢬", "⢭", "⢮", "⢯",
121 "⣨", "⣩", "⣪", "⣫", "⣬", "⣭", "⣮", "⣯", "⢰", "⢱", "⢲", "⢳", "⢴", "⢵", "⢶", "⢷", "⣰", "⣱",
122 "⣲", "⣳", "⣴", "⣵", "⣶", "⣷", "⢸", "⢹", "⢺", "⢻", "⢼", "⢽", "⢾", "⢿", "⣸", "⣹", "⣺", "⣻",
123 "⣼", "⣽", "⣾", "⣿"
124 ],
125 80
126);
127
128spinner_frames!("line", ["-", "\\", "|", "/"], 130);
129
130spinner_frames!("line2", ["⠂", "-", "–", "—", "–", "-"], 100);
131
132spinner_frames!("pipe", ["┤", "┘", "┴", "└", "├", "┌", "┬", "┐"], 100);
133
134spinner_frames!("simple_dots", [". ", ".. ", "...", " "], 400);
135
136spinner_frames!(
137 "simple_dots_scrolling",
138 [". ", ".. ", "...", " ..", " .", " "],
139 200
140);
141
142spinner_frames!("star", ["✶", "✸", "✹", "✺", "✹", "✷"], 70);
143
144spinner_frames!("star2", ["+", "x", "*"], 80);
145
146spinner_frames!(
147 "flip",
148 ["_", "_", "_", "-", "`", "`", "'", "´", "-", "_", "_", "_"],
149 70
150);
151
152spinner_frames!("hamburger", ["☱", "☲", "☴"], 100);
153
154spinner_frames!(
155 "grow_vertical",
156 ["▁", "▃", "▄", "▅", "▆", "▇", "▆", "▅", "▄", "▃"],
157 120
158);
159
160spinner_frames!(
161 "grow_horizontal",
162 ["▏", "▎", "▍", "▌", "▋", "▊", "▉", "▊", "▋", "▌", "▍", "▎"],
163 120
164);
165
166spinner_frames!("balloon", [" ", ".", "o", "O", "@", "*", " "], 140);
167
168spinner_frames!("balloon2", [".", "o", "O", "°", "O", "o", "."], 120);
169
170spinner_frames!("noise", ["▓", "▒", "░"], 100);
171
172spinner_frames!("bounce", ["⠁", "⠂", "⠄", "⠂"], 120);
173
174spinner_frames!("box_bounce", ["▖", "▘", "▝", "▗"], 120);
175
176spinner_frames!("box_bounce2", ["▌", "▀", "▐", "▄"], 100);
177
178spinner_frames!("triangle", ["◢", "◣", "◤", "◥"], 50);
179
180spinner_frames!("arc", ["◜", "◠", "◝", "◞", "◡", "◟"], 100);
181
182spinner_frames!("circle", ["◡", "⊙", "◠"], 120);
183
184spinner_frames!("square_corners", ["◰", "◳", "◲", "◱"], 180);
185
186spinner_frames!("circle_quarters", ["◴", "◷", "◶", "◵"], 120);
187
188spinner_frames!("circle_halves", ["◐", "◓", "◑", "◒"], 50);
189
190spinner_frames!("squish", ["╫", "╪"], 100);
191
192spinner_frames!("toggle", ["⊶", "⊷"], 250);
193
194spinner_frames!("toggle2", ["▫", "▪"], 80);
195
196spinner_frames!("toggle3", ["□", "■"], 120);
197
198spinner_frames!("toggle4", ["■", "□", "▪", "▫"], 100);
199
200spinner_frames!("toggle5", ["▮", "▯"], 100);
201
202spinner_frames!("toggle6", ["ဝ", "၀"], 300);
203
204spinner_frames!("toggle7", ["⦾", "⦿"], 80);
205
206spinner_frames!("toggle8", ["◍", "◌"], 100);
207
208spinner_frames!("toggle9", ["◉", "◎"], 100);
209
210spinner_frames!("toggle10", ["㊂", "㊀", "㊁"], 100);
211
212spinner_frames!("toggle11", ["⧇", "⧆"], 50);
213
214spinner_frames!("toggle12", ["☗", "☖"], 120);
215
216spinner_frames!("toggle13", ["=", "*", "-"], 80);
217
218spinner_frames!("arrow", ["←", "↖", "↑", "↗", "→", "↘", "↓", "↙"], 100);
219
220spinner_frames!(
221 "arrow2",
222 ["⬆️ ", "↗️ ", "➡️ ", "↘️ ", "⬇️ ", "↙️ ", "⬅️ ", "↖️ "],
223 80
224);
225
226spinner_frames!(
227 "arrow3",
228 ["▹▹▹▹▹", "▸▹▹▹▹", "▹▸▹▹▹", "▹▹▸▹▹", "▹▹▹▸▹", "▹▹▹▹▸"],
229 120
230);
231
232spinner_frames!(
233 "bouncing_bar",
234 [
235 "[ ]", "[= ]", "[== ]", "[=== ]", "[ ===]", "[ ==]", "[ =]", "[ ]", "[ =]",
236 "[ ==]", "[ ===]", "[====]", "[=== ]", "[== ]", "[= ]"
237 ],
238 80
239);
240
241spinner_frames!(
242 "bouncing_ball",
243 [
244 "( ● )",
245 "( ● )",
246 "( ● )",
247 "( ● )",
248 "( ●)",
249 "( ● )",
250 "( ● )",
251 "( ● )",
252 "( ● )",
253 "(● )"
254 ],
255 80
256);
257
258spinner_frames!("smiley", ["😄 ", "😝 "], 200);
259
260spinner_frames!("monkey", ["🙈 ", "🙈 ", "🙉 ", "🙊 "], 300);
261
262spinner_frames!("hearts", ["💛 ", "💙 ", "💜 ", "💚 ", "❤️ "], 100);
263
264spinner_frames!(
265 "clock",
266 ["🕛 ", "🕐 ", "🕑 ", "🕒 ", "🕓 ", "🕔 ", "🕕 "],
267 100
268);
269
270spinner_frames!(
271 "material",
272 [
273 "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
274 "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
275 "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
276 "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
277 "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
278 "██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
279 "███████▁▁▁▁▁▁▁▁▁▁▁▁▁",
280 "████████▁▁▁▁▁▁▁▁▁▁▁▁",
281 "█████████▁▁▁▁▁▁▁▁▁▁▁",
282 "█████████▁▁▁▁▁▁▁▁▁▁▁",
283 "██████████▁▁▁▁▁▁▁▁▁▁",
284 "███████████▁▁▁▁▁▁▁▁▁",
285 "█████████████▁▁▁▁▁▁▁",
286 "██████████████▁▁▁▁▁▁",
287 "██████████████▁▁▁▁▁▁",
288 "▁██████████████▁▁▁▁▁",
289 "▁██████████████▁▁▁▁▁",
290 "▁██████████████▁▁▁▁▁",
291 "▁▁██████████████▁▁▁▁",
292 "▁▁▁██████████████▁▁▁",
293 "▁▁▁▁█████████████▁▁▁",
294 "▁▁▁▁██████████████▁▁",
295 "▁▁▁▁██████████████▁▁",
296 "▁▁▁▁▁██████████████▁",
297 "▁▁▁▁▁██████████████▁",
298 "▁▁▁▁▁██████████████▁",
299 "▁▁▁▁▁▁██████████████",
300 "▁▁▁▁▁▁██████████████",
301 "▁▁▁▁▁▁▁█████████████",
302 "▁▁▁▁▁▁▁█████████████",
303 "▁▁▁▁▁▁▁▁████████████",
304 "▁▁▁▁▁▁▁▁████████████",
305 "▁▁▁▁▁▁▁▁▁███████████",
306 "▁▁▁▁▁▁▁▁▁███████████",
307 "▁▁▁▁▁▁▁▁▁▁██████████",
308 "▁▁▁▁▁▁▁▁▁▁██████████",
309 "▁▁▁▁▁▁▁▁▁▁▁▁████████",
310 "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
311 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████",
312 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
313 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
314 "█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
315 "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
316 "██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
317 "███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
318 "████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
319 "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
320 "█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
321 "██████▁▁▁▁▁▁▁▁▁▁▁▁▁█",
322 "████████▁▁▁▁▁▁▁▁▁▁▁▁",
323 "█████████▁▁▁▁▁▁▁▁▁▁▁",
324 "█████████▁▁▁▁▁▁▁▁▁▁▁",
325 "█████████▁▁▁▁▁▁▁▁▁▁▁",
326 "█████████▁▁▁▁▁▁▁▁▁▁▁",
327 "███████████▁▁▁▁▁▁▁▁▁",
328 "████████████▁▁▁▁▁▁▁▁",
329 "████████████▁▁▁▁▁▁▁▁",
330 "██████████████▁▁▁▁▁▁",
331 "██████████████▁▁▁▁▁▁",
332 "▁██████████████▁▁▁▁▁",
333 "▁██████████████▁▁▁▁▁",
334 "▁▁▁█████████████▁▁▁▁",
335 "▁▁▁▁▁████████████▁▁▁",
336 "▁▁▁▁▁████████████▁▁▁",
337 "▁▁▁▁▁▁███████████▁▁▁",
338 "▁▁▁▁▁▁▁▁█████████▁▁▁",
339 "▁▁▁▁▁▁▁▁█████████▁▁▁",
340 "▁▁▁▁▁▁▁▁▁█████████▁▁",
341 "▁▁▁▁▁▁▁▁▁█████████▁▁",
342 "▁▁▁▁▁▁▁▁▁▁█████████▁",
343 "▁▁▁▁▁▁▁▁▁▁▁████████▁",
344 "▁▁▁▁▁▁▁▁▁▁▁████████▁",
345 "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
346 "▁▁▁▁▁▁▁▁▁▁▁▁███████▁",
347 "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
348 "▁▁▁▁▁▁▁▁▁▁▁▁▁███████",
349 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████",
350 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
351 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
352 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████",
353 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
354 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███",
355 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
356 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
357 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██",
358 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
359 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
360 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█",
361 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
362 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
363 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
364 "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"
365 ],
366 17
367);
368
369spinner_frames!("earth", ["🌍 ", "🌎 ", "🌏 "], 180);
370
371spinner_frames!(
372 "moon",
373 ["🌑 ", "🌒 ", "🌓 ", "🌔 ", "🌕 ", "🌖 ", "🌗 ", "🌘 "],
374 80
375);
376
377spinner_frames!("runner", ["🚶 ", "🏃 "], 140);
378
379spinner_frames!(
380 "pong",
381 [
382 "▐⠂ ▌",
383 "▐⠈ ▌",
384 "▐ ⠂ ▌",
385 "▐ ⠠ ▌",
386 "▐ ⡀ ▌",
387 "▐ ⠠ ▌",
388 "▐ ⠂ ▌",
389 "▐ ⠈ ▌",
390 "▐ ⠂ ▌",
391 "▐ ⠠ ▌",
392 "▐ ⡀ ▌",
393 "▐ ⠠ ▌",
394 "▐ ⠂ ▌",
395 "▐ ⠈ ▌",
396 "▐ ⠂▌",
397 "▐ ⠠▌",
398 "▐ ⡀▌",
399 "▐ ⠠ ▌",
400 "▐ ⠂ ▌",
401 "▐ ⠈ ▌",
402 "▐ ⠂ ▌",
403 "▐ ⠠ ▌",
404 "▐ ⡀ ▌",
405 "▐ ⠠ ▌",
406 "▐ ⠂ ▌",
407 "▐ ⠈ ▌",
408 "▐ ⠂ ▌",
409 "▐ ⠠ ▌",
410 "▐ ⡀ ▌",
411 "▐⠠ ▌"
412 ],
413 80
414);
415
416spinner_frames!(
417 "shark",
418 [
419 "▐|\\____________▌",
420 "▐_|\\___________▌",
421 "▐__|\\__________▌",
422 "▐___|\\_________▌",
423 "▐____|\\________▌",
424 "▐_____|\\_______▌",
425 "▐______|\\______▌",
426 "▐_______|\\_____▌",
427 "▐________|\\____▌",
428 "▐_________|\\___▌",
429 "▐__________|\\__▌",
430 "▐___________|\\_▌",
431 "▐____________|\\▌",
432 "▐____________/|▌",
433 "▐___________/|_▌",
434 "▐__________/|__▌",
435 "▐_________/|___▌",
436 "▐________/|____▌",
437 "▐_______/|_____▌",
438 "▐______/|______▌",
439 "▐_____/|_______▌",
440 "▐____/|________▌",
441 "▐___/|_________▌",
442 "▐__/|__________▌",
443 "▐_/|___________▌",
444 "▐/|____________▌"
445 ],
446 120
447);
448
449spinner_frames!("dqpb", ["d", "q", "p", "b"], 100);
450
451spinner_frames!(
452 "weather",
453 [
454 "☀️ ", "☀️ ", "☀️ ", "🌤 ", "⛅️ ", "🌥 ", "☁️ ", "🌧 ", "🌨 ", "🌧 ", "🌨 ", "🌧 ", "🌨 ", "⛈ ", "🌨 ",
455 "🌧 ", "🌨 ", "☁️ ", "🌥 ", "⛅️ ", "🌤 ", "☀️ ", "☀️ "
456 ],
457 100
458);
459
460spinner_frames!("christmas", ["🌲", "🎄"], 400);
461
462spinner_frames!(
463 "grenade",
464 [
465 "، ", "′ ", " ´ ", " ‾ ", " ⸌", " ⸊", " |", " ⁎", " ⁕", " ෴ ", " ⁓", " ", " ",
466 " "
467 ],
468 80
469);
470
471spinner_frames!("point", ["∙∙∙", "●∙∙", "∙●∙", "∙∙●", "∙∙∙"], 125);
472
473spinner_frames!("layer", ["-", "=", "≡"], 150);
474
475spinner_frames!(
476 "beta_wave",
477 [
478 "ρββββββ",
479 "βρβββββ",
480 "ββρββββ",
481 "βββρβββ",
482 "ββββρββ",
483 "βββββρβ",
484 "ββββββρ"
485 ],
486 80
487);
488
489spinner_frames!(
490 "finger_dance",
491 ["🤘 ", "🤟 ", "🖖 ", "✋ ", "🤚 ", "👆 "],
492 160
493);
494
495spinner_frames!(
496 "fist_bump",
497 [
498 "🤜 🤛 ",
499 "🤜 🤛 ",
500 "🤜 🤛 ",
501 " 🤜 🤛 ",
502 " 🤜🤛 ",
503 " 🤜✨🤛 ",
504 "🤜 ✨ 🤛 "
505 ],
506 80
507);
508
509spinner_frames!(
510 "soccer_header",
511 [
512 " 🧑⚽️ 🧑 ",
513 "🧑 ⚽️ 🧑 ",
514 "🧑 ⚽️ 🧑 ",
515 "🧑 ⚽️ 🧑 ",
516 "🧑 ⚽️ 🧑 ",
517 "🧑 ⚽️ 🧑 ",
518 "🧑 ⚽️🧑 ",
519 "🧑 ⚽️ 🧑 ",
520 "🧑 ⚽️ 🧑 ",
521 "🧑 ⚽️ 🧑 ",
522 "🧑 ⚽️ 🧑 ",
523 "🧑 ⚽️ 🧑 "
524 ],
525 80
526);
527
528spinner_frames!(
529 "mindblown",
530 [
531 "😐 ", "😐 ", "😮 ", "😮 ", "😦 ", "😦 ", "😧 ", "😧 ", "🤯 ", "💥 ", "✨ ", " ", " ",
532 " "
533 ],
534 160
535);
536
537spinner_frames!("speaker", ["🔈 ", "🔉 ", "🔊 ", "🔉 "], 160);
538
539spinner_frames!("orange_pulse", ["🔸 ", "🔶 ", "🟠 ", "🟠 ", "🔶 "], 100);
540
541spinner_frames!("blue_pulse", ["🔹 ", "🔷 ", "🔵 ", "🔵 ", "🔷 "], 100);
542
543spinner_frames!(
544 "orange_blue_pulse",
545 ["🔸 ", "🔶 ", "🟠 ", "🟠 ", "🔶 ", "🔹 ", "🔷 ", "🔵 ", "🔵 ", "🔷 "],
546 100
547);
548
549spinner_frames!(
550 "time_travel",
551 [
552 "🕛 ", "🕚 ", "🕙 ", "🕘 ", "🕗 ", "🕖 ", "🕕 ", "🕔 ", "🕓 ", "🕒 ", "🕑 ", "🕐 "
553 ],
554 100
555);
556
557spinner_frames!(
558 "aesthetic",
559 [
560 "▰▱▱▱▱▱▱",
561 "▰▰▱▱▱▱▱",
562 "▰▰▰▱▱▱▱",
563 "▰▰▰▰▱▱▱",
564 "▰▰▰▰▰▱▱",
565 "▰▰▰▰▰▰▱",
566 "▰▰▰▰▰▰▰",
567 "▰▱▱▱▱▱▱"
568 ],
569 80
570);
571
572spinner_frames!(
573 "binary",
574 ["010010", "001100", "100101", "111010", "111101", "010111"],
575 50
576);
577
578spinner_frames!(
579 "cute",
580 [
581 "( ´・ω・)",
582 "( ´・ω)",
583 "( ´・)",
584 "( ´)",
585 "( )",
586 "(` )",
587 "(・` )",
588 "(ω・` )",
589 "(・ω・` )",
590 "(´・ω・`)"
591 ],
592 100
593);