WIP: remove FC
This commit is contained in:
1 parent
3740f81383
commit
92d9521a73
24 files changed
+801
-451
No files matched your search
@@ -6,6 +6,7 @@ mod fc;
|
||||
mod htm;
|
||||
mod ifmt;
|
||||
mod rsxt;
|
||||
mod util;
|
||||
|
||||
/// The html! macro makes it easy for developers to write jsx-style markup in their components.
|
||||
/// We aim to keep functional parity with html templates.
|
||||
@@ -27,31 +28,34 @@ pub fn rsx(s: TokenStream) -> TokenStream {
|
||||
}
|
||||
}
|
||||
|
||||
// #[proc_macro_attribute]
|
||||
// pub fn fc(attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||
|
||||
/// Label a function or static closure as a functional component.
|
||||
/// This macro reduces the need to create a separate properties struct.
|
||||
///
|
||||
/// Using this macro is fun and simple
|
||||
///
|
||||
/// ```ignore
|
||||
///
|
||||
/// #[fc]
|
||||
/// fn Example(ctx: Context, name: &str) -> DomTree {
|
||||
/// ctx.render(rsx! { h1 {"hello {name}"} })
|
||||
/// }
|
||||
/// ```
|
||||
#[proc_macro_attribute]
|
||||
pub fn fc(attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||
use fc::{function_component_impl, FunctionComponent};
|
||||
|
||||
let item = parse_macro_input!(item as FunctionComponent);
|
||||
|
||||
function_component_impl(item)
|
||||
.unwrap_or_else(|err| err.to_compile_error())
|
||||
.into()
|
||||
match syn::parse::<fc::FunctionComponent>(item) {
|
||||
Err(e) => e.to_compile_error().into(),
|
||||
Ok(s) => s.to_token_stream().into(),
|
||||
}
|
||||
}
|
||||
|
||||
#[proc_macro]
|
||||
pub fn format_args_f(input: TokenStream) -> TokenStream {
|
||||
use ifmt::*;
|
||||
|
||||
let item = parse_macro_input!(input as IfmtInput);
|
||||
|
||||
// #[allow(unused)]
|
||||
// const FUNCTION_NAME: &str = "format_args_f";
|
||||
|
||||
// debug_input!(&input);
|
||||
|
||||
ifmt::format_args_f_impl(item)
|
||||
// .unwrap_or_else(|err| err.to_compile_error())
|
||||
// .into()
|
||||
format_args_f_impl(item)
|
||||
.unwrap_or_else(|err| err.to_compile_error())
|
||||
.into()
|
||||
}
|
||||
Reference in new issue
Block a user