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