1#[macro_export]
3macro_rules! route {
4 ($method:ident, $path:literal, $handler:expr) => {
5 ::actix_web::web::$method().to($handler)
6 };
7 ($method:ident, $path:literal, $handler:expr, $($extra:tt)*) => {
8 ::actix_web::web::$method().to($handler).$($extra)*
9 };
10}
11
12#[macro_export] macro_rules! get { ($path:literal, $handler:expr $(, $($extra:tt)*)?) => { $crate::route!(get, $path, $handler $(, $($extra)*)?) }; }
14#[macro_export] macro_rules! post { ($path:literal, $handler:expr $(, $($extra:tt)*)?) => { $crate::route!(post, $path, $handler $(, $($extra)*)?) }; }
15#[macro_export] macro_rules! put { ($path:literal, $handler:expr $(, $($extra:tt)*)?) => { $crate::route!(put, $path, $handler $(, $($extra)*)?) }; }
16#[macro_export] macro_rules! delete { ($path:literal, $handler:expr $(, $($extra:tt)*)?) => { $crate::route!(delete, $path, $handler $(, $($extra)*)?) }; }
17#[macro_export] macro_rules! patch { ($path:literal, $handler:expr $(, $($extra:tt)*)?) => { $crate::route!(patch, $path, $handler $(, $($extra)*)?) }; }
18
19#[macro_export]
21macro_rules! routes {
22 ($cfg:ident => { $($item:expr),* $(,)? }) => {
23 {
24 $(
25 $cfg = $cfg.service($item);
26 )*
27 }
28 };
29}
30
31#[macro_export]
33macro_rules! scope {
34 ($path:literal $(, .$extra:ident($($args:tt)*))* => { $($routes:expr),* $(,)? }) => {
35 ::actix_web::web::scope($path)
36 $(.$extra($($args)*))*
37 $(.service($routes))*
38 };
39}
40
41#[macro_export]
43macro_rules! resource {
44 ($path:literal $(, .$extra:ident($($args:tt)*))* => { $($routes:expr),* $(,)? }) => {
45 ::actix_web::web::resource($path)
46 $(.$extra($($args)*))*
47 $(.route($routes))*
48 };
49}