1mod handler;
2
3use proc_macro::TokenStream;
4use quote::quote;
5
6#[proc_macro_attribute]
7pub fn handler(args: TokenStream, input: TokenStream) -> TokenStream {
8 handler::handler(args.into(), input.into(), None).into()
9}
10
11#[proc_macro_attribute]
12pub fn get(args: TokenStream, input: TokenStream) -> TokenStream {
13 handler::handler(args.into(), input.into(), Some("GET")).into()
14}
15
16#[proc_macro_attribute]
17pub fn post(args: TokenStream, input: TokenStream) -> TokenStream {
18 handler::handler(args.into(), input.into(), Some("POST")).into()
19}
20
21#[proc_macro_attribute]
22pub fn put(args: TokenStream, input: TokenStream) -> TokenStream {
23 handler::handler(args.into(), input.into(), Some("PUT")).into()
24}
25
26#[proc_macro_attribute]
27pub fn delete(args: TokenStream, input: TokenStream) -> TokenStream {
28 handler::handler(args.into(), input.into(), Some("DELETE")).into()
29}
30
31#[proc_macro_attribute]
32pub fn head(args: TokenStream, input: TokenStream) -> TokenStream {
33 handler::handler(args.into(), input.into(), Some("HEAD")).into()
34}
35
36#[proc_macro_attribute]
37pub fn options(args: TokenStream, input: TokenStream) -> TokenStream {
38 handler::handler(args.into(), input.into(), Some("OPTIONS")).into()
39}
40
41#[proc_macro_attribute]
42pub fn patch(args: TokenStream, input: TokenStream) -> TokenStream {
43 handler::handler(args.into(), input.into(), Some("PATCH")).into()
44}
45
46#[proc_macro_attribute]
47pub fn trace(args: TokenStream, input: TokenStream) -> TokenStream {
48 handler::handler(args.into(), input.into(), Some("TRACE")).into()
49}
50
51#[proc_macro_derive(Model, attributes(rorm))]
52pub fn derive_rorm_model(input: TokenStream) -> TokenStream {
53 rorm_macro_impl::derive_model(
54 input.into(),
55 rorm_macro_impl::MacroConfig {
56 rorm_path: quote! { ::galvyn::rorm },
57 ..Default::default()
58 },
59 )
60 .into()
61}
62
63#[proc_macro_derive(Patch, attributes(rorm))]
64pub fn derive_rorm_patch(input: TokenStream) -> TokenStream {
65 rorm_macro_impl::derive_patch(
66 input.into(),
67 rorm_macro_impl::MacroConfig {
68 rorm_path: quote! { ::galvyn::rorm },
69 ..Default::default()
70 },
71 )
72 .into()
73}
74
75#[proc_macro_derive(DbEnum, attributes(rorm))]
76pub fn derive_rorm_db_enum(input: TokenStream) -> TokenStream {
77 rorm_macro_impl::derive_db_enum(
78 input.into(),
79 rorm_macro_impl::MacroConfig {
80 rorm_path: quote! { ::galvyn::rorm },
81 ..Default::default()
82 },
83 )
84 .into()
85}