windjammer_ui/components/generated/
grid.rs

1#![allow(clippy::all)]
2#![allow(noop_method_call)]
3use std::fmt::Write;
4
5use super::traits::Renderable;
6
7#[derive(Debug, Clone, PartialEq, Eq)]
8pub struct Grid {
9    pub children: Vec<String>,
10    pub columns: i32,
11    pub gap: String,
12    pub padding: String,
13}
14
15impl Grid {
16    #[inline]
17    pub fn new(columns: i32) -> Grid {
18        Grid {
19            children: Vec::new(),
20            columns,
21            gap: "16px".to_string(),
22            padding: "0".to_string(),
23        }
24    }
25    #[inline]
26    pub fn child(mut self, child: String) -> Grid {
27        self.children.push(child);
28        self
29    }
30    #[inline]
31    pub fn children(mut self, children: Vec<String>) -> Grid {
32        self.children = children;
33        self
34    }
35    #[inline]
36    pub fn gap(mut self, gap: String) -> Grid {
37        self.gap = gap;
38        self
39    }
40    #[inline]
41    pub fn padding(mut self, padding: String) -> Grid {
42        self.padding = padding;
43        self
44    }
45}
46
47impl Renderable for Grid {
48    #[inline]
49    fn render(self) -> String {
50        let style = {
51            let mut __s = String::with_capacity(64);
52            write!(
53                &mut __s,
54                "display: grid; grid-template-columns: repeat({}, 1fr); gap: {}; padding: {};",
55                self.columns, self.gap, self.padding
56            )
57            .unwrap();
58            __s
59        };
60        let children_html = self.children.join(
61            "
62",
63        );
64        format!(
65            "<div class='wj-grid' style='{}'>
66{}
67</div>",
68            style, children_html
69        )
70    }
71}