windjammer_ui/components/generated/
spinner.rs

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