commonlibsse_ng_proc_macro_common\skse_plugin_main/
mod.rs

1pub(crate) mod attr_args;
2mod logger;
3pub(crate) mod plugin_entry;
4
5use proc_macro2::TokenStream;
6
7pub fn gen_skse_plugin_main(attrs: TokenStream, item_fn: syn::ItemFn) -> TokenStream {
8    let args = {
9        let attr_args = match darling::ast::NestedMeta::parse_meta_list(attrs) {
10            Ok(v) => v,
11            Err(e) => {
12                return darling::Error::from(e).write_errors();
13            }
14        };
15
16        match <attr_args::MacroArgs as darling::FromMeta>::from_list(&attr_args) {
17            Ok(v) => v,
18            Err(e) => {
19                return e.write_errors();
20            }
21        }
22    };
23
24    plugin_entry::generate_plugin_code(args, item_fn)
25}