1use proc_macro::TokenStream;
48
49mod macros;
50mod utils;
51
52use macros::{
54 check_login::sa_check_login_impl,
55 check_permission::sa_check_permission_impl,
56 check_role::sa_check_role_impl,
57 check_permissions_and::sa_check_permissions_and_impl,
58 check_permissions_or::sa_check_permissions_or_impl,
59 check_roles_and::sa_check_roles_and_impl,
60 check_roles_or::sa_check_roles_or_impl,
61 check_safe::sa_check_safe_impl,
62 check_disable::sa_check_disable_impl,
63 check_or::sa_check_or_impl,
64 ignore::sa_ignore_impl,
65};
66
67#[proc_macro_attribute]
69pub fn sa_check_login(attr: TokenStream, item: TokenStream) -> TokenStream {
70 sa_check_login_impl(attr, item)
71}
72
73#[proc_macro_attribute]
75pub fn sa_check_permission(attr: TokenStream, item: TokenStream) -> TokenStream {
76 sa_check_permission_impl(attr, item)
77}
78
79#[proc_macro_attribute]
81pub fn sa_check_role(attr: TokenStream, item: TokenStream) -> TokenStream {
82 sa_check_role_impl(attr, item)
83}
84
85#[proc_macro_attribute]
87pub fn sa_check_permissions_and(attr: TokenStream, item: TokenStream) -> TokenStream {
88 sa_check_permissions_and_impl(attr, item)
89}
90
91#[proc_macro_attribute]
93pub fn sa_check_permissions_or(attr: TokenStream, item: TokenStream) -> TokenStream {
94 sa_check_permissions_or_impl(attr, item)
95}
96
97#[proc_macro_attribute]
99pub fn sa_check_roles_and(attr: TokenStream, item: TokenStream) -> TokenStream {
100 sa_check_roles_and_impl(attr, item)
101}
102
103#[proc_macro_attribute]
105pub fn sa_check_roles_or(attr: TokenStream, item: TokenStream) -> TokenStream {
106 sa_check_roles_or_impl(attr, item)
107}
108
109#[proc_macro_attribute]
111pub fn sa_ignore(attr: TokenStream, item: TokenStream) -> TokenStream {
112 sa_ignore_impl(attr, item)
113}
114
115#[proc_macro_attribute]
117pub fn sa_check_safe(attr: TokenStream, item: TokenStream) -> TokenStream {
118 sa_check_safe_impl(attr, item)
119}
120
121#[proc_macro_attribute]
123pub fn sa_check_disable(attr: TokenStream, item: TokenStream) -> TokenStream {
124 sa_check_disable_impl(attr, item)
125}
126
127#[proc_macro_attribute]
129pub fn sa_check_or(attr: TokenStream, item: TokenStream) -> TokenStream {
130 sa_check_or_impl(attr, item)
131}