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