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
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}