The code is now capable of fully generating basic Xilem code! Next up: build system (for real this time)
HEUMSBESSTWA6G7ZG5OJP3ZW3FLXHYUCODGDHMZSLE4O777JSDJQC
items: vec![syn::Item::Fn(syn::ItemFn {
attrs: Vec::new(),
vis: syn::Visibility::Public(syn::token::Pub::default()),
sig: syn::Signature {
constness: None,
asyncness: None,
unsafety: None,
abi: None,
fn_token: syn::token::Fn::default(),
ident: syn::Ident::new("test", proc_macro2::Span::call_site()),
generics: syn::Generics::default(),
paren_token: syn::token::Paren::default(),
inputs: Punctuated::new(),
variadic: None,
output: syn::ReturnType::Default,
},
block: Box::new(syn::Block {
brace_token: syn::token::Brace::default(),
stmts: vec![syn::Stmt::Expr(
syn::Expr::Tuple(syn::ExprTuple {
attrs: Vec::new(),
paren_token: syn::token::Paren::default(),
elems: Punctuated::from_iter(blocks.into_iter()),
}),
None,
)],
items: vec![
syn::Item::Use(syn::ItemUse {
attrs: Vec::new(),
vis: syn::Visibility::Inherited,
use_token: syn::token::Use::default(),
leading_colon: None,
tree: syn::UseTree::Path(syn::UsePath {
ident: syn::Ident::new("xilem_html", proc_macro2::Span::call_site()),
colon2_token: syn::token::PathSep::default(),
tree: Box::new(syn::UseTree::Group(syn::UseGroup {
brace_token: syn::token::Brace::default(),
items: Punctuated::<syn::UseTree, syn::token::Comma>::from_iter(
vec![
syn::UseTree::Name(syn::UseName {
ident: syn::Ident::new(
"elements",
proc_macro2::Span::call_site(),
),
}),
syn::UseTree::Name(syn::UseName {
ident: syn::Ident::new(
"ViewSequence",
proc_macro2::Span::call_site(),
),
}),
syn::UseTree::Name(syn::UseName {
ident: syn::Ident::new(
"ViewMarker",
proc_macro2::Span::call_site(),
),
}),
]
.into_iter(),
),
})),
}),
semi_token: syn::token::Semi::default(),
}),
syn::Item::Fn(syn::ItemFn {
attrs: Vec::new(),
vis: syn::Visibility::Public(syn::token::Pub::default()),
sig: syn::Signature {
constness: None,
asyncness: None,
unsafety: None,
abi: None,
fn_token: syn::token::Fn::default(),
ident: syn::Ident::new("test", proc_macro2::Span::call_site()),
generics: syn::Generics::default(),
paren_token: syn::token::Paren::default(),
inputs: Punctuated::new(),
variadic: None,
output: syn::ReturnType::Default,
},
block: Box::new(syn::Block {
brace_token: syn::token::Brace::default(),
stmts: vec![syn::Stmt::Expr(
syn::Expr::Tuple(syn::ExprTuple {
attrs: Vec::new(),
paren_token: syn::token::Paren::default(),
elems: Punctuated::from_iter(blocks.into_iter()),
}),
None,
)],
}),