lsor-proc-macro 0.1.0

Proc macros for lsor
Documentation
use proc_macro::TokenStream;
use quote::quote;
use syn::DeriveInput;

pub fn expand_derive_type(input: TokenStream) -> TokenStream {
    let ast: DeriveInput = syn::parse(input).unwrap();
    let ident = &ast.ident;
    let (impl_generics, ty_generics, where_clause) = ast.generics.split_for_impl();
    let expanded_derive_type =
        sqlx_macros_core::derives::expand_derive_type_encode_decode(&ast).unwrap();

    TokenStream::from(quote! {
        #expanded_derive_type

        impl #impl_generics ::lsor::driver::PushPrql for #ident #ty_generics #where_clause {
            fn push_to_driver(&self, driver: &mut ::lsor::driver::Driver) {
                driver.push_bind(self);
            }
        }
    })
}