Skip to main content

mool_macros_impl/sql_enum/
mod.rs

1//! `SqlEnum` derive implementation.
2
3mod attrs;
4mod codegen;
5mod model;
6mod rename;
7
8#[cfg(test)]
9mod tests;
10
11use syn::DeriveInput;
12
13pub fn derive_sql_enum(
14    input: proc_macro2::TokenStream,
15    runtime_path: proc_macro2::TokenStream,
16) -> proc_macro2::TokenStream {
17    let input = match syn::parse2::<DeriveInput>(input) {
18        Ok(input) => input,
19        Err(err) => return err.to_compile_error(),
20    };
21    let crate_path = crate::runtime_path(&input, runtime_path);
22    match model::ParsedSqlEnum::from_input(&input) {
23        Ok(parsed) => codegen::generate(&parsed, &crate_path),
24        Err(err) => err.to_compile_error(),
25    }
26}