blob: 8e31dc324c47c06d592739e83ecff40f04eff8b0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
use crate::types::{ElementName, RenderedElement};
impl RenderedElement {
pub fn codegen(&self) -> Result<(String, String), &str> {
let mut imports = String::new();
let mut view = String::new();
let mut props = String::new();
let mut elements = String::new();
match self.children {
Some(els) => {
for el in els {
let mut children = String::new();
match el.codegen() {
Ok(e) => (children, imports) = e,
Err(err) => return Err(err),
}
elements = format!("{elements},{}", children);
}
}
None => {}
}
match self.name {
ElementName::Row => {
imports = format!("{imports}\nuse iced::widget::row;");
view = format!("{view}\nrow![{elements}]{props};");
}
ElementName::Container => {
imports = format!("{imports}\nuse iced::widget::container;");
view = format!("{view}\ncontainer({elements}){props};");
}
_ => {}
}
}
}
|