use proc_macro::TokenStream;
use syn::{parse_macro_input, ItemStruct};
mod common_fields;
mod sql_helper;
pub(crate) const DEFAULT_ID_NAME: &str = "id";
pub(crate) const DEFAULT_CREATE_TIME_NAME: &str = "create_time";
pub(crate) const DEFAULT_UPDATE_TIME_NAME: &str = "update_time";
#[proc_macro_derive(SqlHelper, attributes(id, field_name, create_time, update_time))]
pub fn derive_sql_helper(input: TokenStream) -> TokenStream {
let ast = parse_macro_input!(input as ItemStruct);
sql_helper::impl_sql_helper(&ast)
}
#[proc_macro_attribute]
pub fn common_fields(_attr: TokenStream, input: TokenStream) -> TokenStream {
let mut ast = parse_macro_input!(input as ItemStruct);
common_fields::impl_common_fields(&mut ast)
}