windjammer_ui/components/generated/
grid.rs1#![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}