1#![allow(clippy::large_enum_variant)]
2
3#[macro_use]
4mod utils;
5mod bridge;
6mod code_generate;
7
8use code_generate::code_generate;
9use darling::FromDeriveInput;
10use darling_models::struct_input::SubModelDefs;
11use syn::{parse_macro_input, DeriveInput};
12
13mod darling_models;
14
15#[doc= include_str!("../readme.md")]
16#[proc_macro_derive(SubModel, attributes(sub_model))]
17pub fn sub_model_derive_marco(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
18 let derive_input = parse_macro_input!(input as DeriveInput);
19
20 let sub_model_defs = darling_err!(<SubModelDefs as FromDeriveInput>::from_derive_input(
21 &derive_input
22 ));
23
24 code_generate(sub_model_defs)
25}