luna_orm_macro/
lib.rs

1#![allow(dead_code)]
2use proc_macro::TokenStream;
3
4mod auto_entity;
5mod entity;
6mod field_utils;
7mod fields_parser;
8mod location;
9mod mutation;
10mod order_by;
11mod primary;
12mod selected_entity;
13mod selection;
14mod template_record;
15mod timer;
16mod type_check;
17mod type_extract;
18mod utils;
19
20use auto_entity::impl_auto_entity_macro;
21use entity::impl_entity_macro;
22use location::impl_location_macro;
23use mutation::impl_mutation_macro;
24use order_by::impl_order_by_macro;
25use primary::impl_primary_macro;
26use selected_entity::impl_selected_entity_macro;
27use selection::impl_selection_macro;
28use template_record::impl_template_record_by_macro;
29use timer::impl_timed_func;
30
31#[proc_macro_derive(Primary, attributes(TableName))]
32pub fn expand_primary_macro(input: TokenStream) -> TokenStream {
33    impl_primary_macro(input)
34}
35
36#[proc_macro_derive(Location, attributes(TableName, UniqueIndex))]
37pub fn expand_location_macro(input: TokenStream) -> TokenStream {
38    impl_location_macro(input)
39}
40
41#[proc_macro_derive(Mutation)]
42pub fn expand_mutation_macro(input: TokenStream) -> TokenStream {
43    impl_mutation_macro(input)
44}
45
46#[proc_macro_derive(SelectedEntity)]
47pub fn expand_selected_entity_macro(input: TokenStream) -> TokenStream {
48    impl_selected_entity_macro(input)
49}
50
51#[proc_macro_derive(Selection)]
52pub fn expand_selection_macro(input: TokenStream) -> TokenStream {
53    impl_selection_macro(input)
54}
55
56#[proc_macro_derive(Entity, attributes(TableName, PrimaryKey))]
57pub fn expand_entity_macro(input: TokenStream) -> TokenStream {
58    impl_entity_macro(input)
59}
60
61#[proc_macro_derive(OrderBy)]
62pub fn expand_order_by_macro(input: TokenStream) -> TokenStream {
63    impl_order_by_macro(input)
64}
65
66#[proc_macro_derive(TemplateRecord, attributes(TemplateSql, TemplateCountSql))]
67pub fn expand_template_record_by_macro(input: TokenStream) -> TokenStream {
68    impl_template_record_by_macro(input)
69}
70
71#[proc_macro_derive(
72    Schema,
73    attributes(TableName, PrimaryKey, UniqueIndex, AutoIncrement, Generated)
74)]
75pub fn expand_auto_entity_macro(input: TokenStream) -> TokenStream {
76    impl_auto_entity_macro(input)
77}
78
79#[proc_macro_attribute]
80pub fn timed(
81    metadata: proc_macro::TokenStream,
82    input: proc_macro::TokenStream,
83) -> proc_macro::TokenStream {
84    impl_timed_func(metadata, input)
85}