Avoids polluting the namespace directly. Multiple files aren't handled yet, but every subdirectory will be its own module.
4MMVEN5YUVUQ5RO3X2XKZVBMBMHOEJIYUCLKL63EPRUVQQRQXUAAC
ZYNEMGAZXWHIWGNPB2RTYG3JWTH5Y5XY4JWJ3TTPANIOORTCLISAC
HEUMSBESSTWA6G7ZG5OJP3ZW3FLXHYUCODGDHMZSLE4O777JSDJQC
2N3KOCP74PCK2ETO5PCWBDR5PA57DDNT2KR4JLBPZPQPA56SAR4QC
BA5Y6VSEHJQBOYBS6R6FE6IZDRNAPNIN5ITJXWK7L46RJVHNI7JAC
A4E5KLI2CEHJLO6WUME2VIXPK4C2DXHCBVEK2TJTLHGCRCZ2ZC7QC
C73UJ7ZYG4EE3YTK3N66GXPNWJHEBSRE4PDQBWMN6SKQ3U6ZYKXAC
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 {
unsafety: None,
mod_token: syn::token::Mod::default(),
ident: syn::Ident::new("docs", proc_macro2::Span::call_site()),
content: Some((syn::token::Brace::default(), 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(),
),
}),
]
.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 { lt_token: None, params: Punctuated::from_iter(vec![syn::GenericParam::Type(syn::TypeParam { attrs: Vec::new(), ident: syn::Ident::new("T", proc_macro2::Span::call_site()), colon_token: None, bounds: Punctuated::new(), eq_token: None, default: None })].into_iter()), gt_token: None, where_clause: None },
paren_token: syn::token::Paren::default(),
inputs: Punctuated::new(),
variadic: None,
output: syn::ReturnType::Type(
syn::token::RArrow::default(),
Box::new(syn::Type::ImplTrait(syn::TypeImplTrait {
impl_token: syn::token::Impl::default(),
bounds: Punctuated::from_iter(
vec![syn::TypeParamBound::Trait(syn::TraitBound {
paren_token: None,
modifier: syn::TraitBoundModifier::None,
lifetimes: None,
path: syn::Path {
leading_colon: None,
segments: Punctuated::from_iter(
vec![syn::PathSegment {
ident: syn::Ident::new(
"ViewSequence",
proc_macro2::Span::call_site(),
),
arguments: syn::PathArguments::AngleBracketed(
syn::AngleBracketedGenericArguments {
colon2_token: None,
lt_token: syn::token::Lt::default(),
args: Punctuated::from_iter(
vec![syn::GenericArgument::Type(
syn::Type::Path(syn::TypePath {
qself: None,
path: syn::Path {
leading_colon: None,
segments: Punctuated::from_iter(vec![syn::PathSegment { ident: syn::Ident::new("T", proc_macro2::Span::call_site()), arguments: syn::PathArguments::None }].into_iter()),
},
}),
)]
.into_iter(),
),
gt_token: syn::token::Gt::default(),
},
),
}]
.into_iter(),
),
},
})]
.into_iter(),
),
})),
),
},
block: Box::new(syn::Block {
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(),
),
}),
]
.into_iter(),
),
})),
}),
semi_token: syn::token::Semi::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,
)],
}),
}),])),
semi: None,
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 { lt_token: None, params: Punctuated::from_iter(vec![syn::GenericParam::Type(syn::TypeParam { attrs: Vec::new(), ident: syn::Ident::new("T", proc_macro2::Span::call_site()), colon_token: None, bounds: Punctuated::new(), eq_token: None, default: None })].into_iter()), gt_token: None, where_clause: None },
paren_token: syn::token::Paren::default(),
inputs: Punctuated::new(),
variadic: None,
output: syn::ReturnType::Type(
syn::token::RArrow::default(),
Box::new(syn::Type::ImplTrait(syn::TypeImplTrait {
impl_token: syn::token::Impl::default(),
bounds: Punctuated::from_iter(
vec![syn::TypeParamBound::Trait(syn::TraitBound {
paren_token: None,
modifier: syn::TraitBoundModifier::None,
lifetimes: None,
path: syn::Path {
leading_colon: None,
segments: Punctuated::from_iter(
vec![syn::PathSegment {
ident: syn::Ident::new(
"ViewSequence",
proc_macro2::Span::call_site(),
),
arguments: syn::PathArguments::AngleBracketed(
syn::AngleBracketedGenericArguments {
colon2_token: None,
lt_token: syn::token::Lt::default(),
args: Punctuated::from_iter(
vec![syn::GenericArgument::Type(
syn::Type::Path(syn::TypePath {
qself: None,
path: syn::Path {
leading_colon: None,
segments: Punctuated::from_iter(vec![syn::PathSegment { ident: syn::Ident::new("T", proc_macro2::Span::call_site()), arguments: syn::PathArguments::None }].into_iter()),
},
}),
)]
.into_iter(),
),
gt_token: syn::token::Gt::default(),
},
),
}]
.into_iter(),
),
},
})]
.into_iter(),
),
})),
),
},
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,
)],
}),
}),