windjammer_ui/components/generated/
spinner.rs1#![allow(clippy::all)]
2#![allow(noop_method_call)]
3use std::fmt::Write;
4
5use super::traits::Renderable;
6
7#[derive(Clone, Debug, PartialEq, Copy)]
8pub enum SpinnerSize {
9 Small,
10 Medium,
11 Large,
12}
13
14#[derive(Debug, Clone, PartialEq)]
15pub struct Spinner {
16 pub size: SpinnerSize,
17 pub label: String,
18}
19
20impl Spinner {
21 #[inline]
22 pub fn new() -> Spinner {
23 Spinner {
24 size: SpinnerSize::Medium,
25 label: "".to_string(),
26 }
27 }
28 #[inline]
29 pub fn size(mut self, size: SpinnerSize) -> Spinner {
30 self.size = size;
31 self
32 }
33 #[inline]
34 pub fn label(mut self, label: String) -> Spinner {
35 self.label = label;
36 self
37 }
38}
39
40impl Renderable for Spinner {
41 #[inline]
42 fn render(self) -> String {
43 let size_class = match self.size {
44 SpinnerSize::Small => "wj-spinner-sm".to_string(),
45 SpinnerSize::Medium => "wj-spinner-md".to_string(),
46 SpinnerSize::Large => "wj-spinner-lg".to_string(),
47 };
48 let spinner_html = {
49 let mut __s = String::with_capacity(64);
50 write!(&mut __s, "<div class='wj-spinner {}'></div>", size_class).unwrap();
51 __s
52 };
53 if self.label != "" {
54 format!("<div class='wj-spinner-container'>{}<span class='wj-spinner-label'>{}</span></div>", spinner_html, self.label)
55 } else {
56 spinner_html
57 }
58 }
59}