ormlitex-macro 0.17.1

An ORM for people who love SQL. Use the `ormlitex` crate, not this one.
Documentation
use proc_macro2::TokenStream;
use quote::quote;
use syn::DeriveInput;
use ormlitex_attr::{Ident, ModelMetadata, TableMetadata};

pub fn struct_InsertModel(ast: &DeriveInput, attr: &ModelMetadata) -> TokenStream {
    let Some(insert_model) = &attr.insert_struct else {
        return quote! {};
    };
    let insert_model = Ident::new(insert_model);
    let vis = &ast.vis;
    let struct_fields = attr.inner.columns.iter()
        .filter(|c| !c.is_default())
        .map(|c| {
            let id = &c.identifier;
            let ty = &c.column_type;
            quote! {
                pub #id: #ty
            }
        });
    quote! {
        #[derive(Debug)]
        #vis struct #insert_model {
            #(#struct_fields,)*
        }
    }
}