Skip to main content

galvyn_macros/
lib.rs

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}