leptos_workers_macro/
lib.rs

1#![warn(clippy::pedantic)]
2#![allow(clippy::unnecessary_wraps)]
3#![allow(clippy::too_many_arguments)]
4
5mod v2;
6
7use crate::v2::analyze::analyze;
8use crate::v2::codegen::codegen;
9use crate::v2::lower::lower;
10use crate::v2::parse::parse;
11use proc_macro_error::proc_macro_error;
12
13extern crate proc_macro2;
14
15#[proc_macro_error]
16#[proc_macro_attribute]
17pub fn worker(
18    args: proc_macro::TokenStream,
19    item: proc_macro::TokenStream,
20) -> proc_macro::TokenStream {
21    let ast = parse(&args.into(), item.into());
22    let model = analyze(ast);
23    let ir = lower(&model);
24    let rust = codegen(ir);
25    rust.into()
26}