mod column;
mod common;
mod param;
use column::ColumnsDerive;
use darling::FromDeriveInput;
use param::ParametersDerive;
use proc_macro::TokenStream;
#[proc_macro_derive(Parameters, attributes(squire))]
pub fn derive_parameters(input: TokenStream) -> TokenStream {
let input = syn::parse_macro_input!(input as syn::DeriveInput);
match ParametersDerive::from_derive_input(&input) {
Ok(params) => match params.derive() {
Ok(tokens) => tokens.into(),
Err(err) => err.write_errors().into(),
},
Err(err) => err.write_errors().into(),
}
}
#[proc_macro_derive(Columns, attributes(squire))]
pub fn derive_columns(input: TokenStream) -> TokenStream {
let input = syn::parse_macro_input!(input as syn::DeriveInput);
match ColumnsDerive::from_derive_input(&input) {
Ok(columns) => match columns.derive() {
Ok(tokens) => tokens.into(),
Err(err) => err.write_errors().into(),
},
Err(err) => err.write_errors().into(),
}
}