Skip to content

Commit 8adc2bb

Browse files
committed
refactor(example): remove unnecessary Result
1 parent a8aa4e8 commit 8adc2bb

1 file changed

Lines changed: 18 additions & 29 deletions

File tree

  • examples/html-to-string-macro/src

examples/html-to-string-macro/src/lib.rs

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,19 @@ use quote::quote;
33
use syn::Expr;
44
use syn_rsx::{parse, Node, NodeType};
55

6-
fn walk_nodes(nodes: Vec<Node>) -> Result<(String, Vec<Expr>), proc_macro2::TokenStream> {
6+
fn walk_nodes(nodes: Vec<Node>) -> (String, Vec<Expr>) {
77
let mut out = String::new();
88
let mut values = vec![];
99
for node in nodes {
1010
match node.node_type {
1111
NodeType::Element => {
1212
let name = node.name_as_string().unwrap();
1313
out.push_str(&format!("<{}", name));
14-
match walk_nodes(node.attributes) {
15-
Ok((html_string, attribute_values)) => {
16-
out.push_str(&html_string);
17-
values.extend(attribute_values);
18-
}
19-
Err(error) => return Err(error),
20-
}
14+
15+
// attributes
16+
let (html_string, attribute_values) = walk_nodes(node.attributes);
17+
out.push_str(&html_string);
18+
values.extend(attribute_values);
2119
out.push_str(">");
2220

2321
// https://developer.mozilla.org/en-US/docs/Glossary/Empty_element
@@ -27,13 +25,10 @@ fn walk_nodes(nodes: Vec<Node>) -> Result<(String, Vec<Expr>), proc_macro2::Toke
2725
_ => (),
2826
}
2927

30-
match walk_nodes(node.children) {
31-
Ok((html_string, children_values)) => {
32-
out.push_str(&html_string);
33-
values.extend(children_values);
34-
}
35-
Err(error) => return Err(error),
36-
};
28+
// children
29+
let (html_string, children_values) = walk_nodes(node.children);
30+
out.push_str(&html_string);
31+
values.extend(children_values);
3732

3833
out.push_str(&format!("</{}>", name));
3934
}
@@ -49,13 +44,9 @@ fn walk_nodes(nodes: Vec<Node>) -> Result<(String, Vec<Expr>), proc_macro2::Toke
4944
values.push(node.value.unwrap());
5045
}
5146
NodeType::Fragment => {
52-
match walk_nodes(node.children) {
53-
Ok((html_string, children_values)) => {
54-
out.push_str(&html_string);
55-
values.extend(children_values);
56-
}
57-
Err(error) => return Err(error),
58-
};
47+
let (html_string, children_values) = walk_nodes(node.children);
48+
out.push_str(&html_string);
49+
values.extend(children_values);
5950
}
6051
NodeType::Comment => {
6152
out.push_str("<!-- {} -->");
@@ -68,18 +59,16 @@ fn walk_nodes(nodes: Vec<Node>) -> Result<(String, Vec<Expr>), proc_macro2::Toke
6859
}
6960
}
7061

71-
Ok((out, values))
62+
(out, values)
7263
}
7364

7465
#[proc_macro]
7566
pub fn html_to_string(tokens: TokenStream) -> TokenStream {
7667
match parse(tokens) {
77-
Ok(nodes) => match walk_nodes(nodes) {
78-
Ok((html_string, values)) => {
79-
quote! { format!(#html_string, #(#values),*) }
80-
}
81-
Err(error) => error,
82-
},
68+
Ok(nodes) => {
69+
let (html_string, values) = walk_nodes(nodes);
70+
quote! { format!(#html_string, #(#values),*) }
71+
}
8372
Err(error) => error.to_compile_error(),
8473
}
8574
.into()

0 commit comments

Comments
 (0)