python_comm_macros/
lib.rs1use {
6 chrono::{Duration, Utc},
7 proc_macro::TokenStream,
8 quote::quote,
9};
10
11mod afn;
12mod asm;
13mod lp;
14mod qa;
15
16#[proc_macro_derive(AsSqlModel, attributes(table, column))]
23pub fn as_sql_model(input: TokenStream) -> TokenStream {
24 asm::as_sql_model(input)
25}
26
27#[proc_macro_attribute]
34pub fn auto_func_name(args: TokenStream, func: TokenStream) -> TokenStream {
35 afn::auto_func_name(args, func)
36}
37
38#[proc_macro]
40pub fn build_time(_input: TokenStream) -> TokenStream {
41 let now = (Utc::now() + Duration::hours(8))
42 .naive_utc()
43 .format("%Y-%m-%d %H:%M:%S")
44 .to_string();
45
46 TokenStream::from(quote!(#now))
47}
48
49#[proc_macro_derive(LimitPack)]
50pub fn limit_pack(input: TokenStream) -> TokenStream {
51 lp::limit_pack(input)
52}
53
54#[proc_macro_derive(QuickAssign)]
56pub fn quick_assign(input: TokenStream) -> TokenStream {
57 qa::quick_assign(input)
58}