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 ignore::sa_ignore_impl,
62};
63
64#[proc_macro_attribute]
66pub fn sa_check_login(attr: TokenStream, item: TokenStream) -> TokenStream {
67 sa_check_login_impl(attr, item)
68}
69
70#[proc_macro_attribute]
72pub fn sa_check_permission(attr: TokenStream, item: TokenStream) -> TokenStream {
73 sa_check_permission_impl(attr, item)
74}
75
76#[proc_macro_attribute]
78pub fn sa_check_role(attr: TokenStream, item: TokenStream) -> TokenStream {
79 sa_check_role_impl(attr, item)
80}
81
82#[proc_macro_attribute]
84pub fn sa_check_permissions_and(attr: TokenStream, item: TokenStream) -> TokenStream {
85 sa_check_permissions_and_impl(attr, item)
86}
87
88#[proc_macro_attribute]
90pub fn sa_check_permissions_or(attr: TokenStream, item: TokenStream) -> TokenStream {
91 sa_check_permissions_or_impl(attr, item)
92}
93
94#[proc_macro_attribute]
96pub fn sa_check_roles_and(attr: TokenStream, item: TokenStream) -> TokenStream {
97 sa_check_roles_and_impl(attr, item)
98}
99
100#[proc_macro_attribute]
102pub fn sa_check_roles_or(attr: TokenStream, item: TokenStream) -> TokenStream {
103 sa_check_roles_or_impl(attr, item)
104}
105
106#[proc_macro_attribute]
108pub fn sa_ignore(attr: TokenStream, item: TokenStream) -> TokenStream {
109 sa_ignore_impl(attr, item)
110}