#[macro_export]
macro_rules! route {
($method:ident, $path:literal, $handler:expr) => {
::actix_web::web::$method().to($handler)
};
($method:ident, $path:literal, $handler:expr, $($extra:tt)*) => {
::actix_web::web::$method().to($handler).$($extra)*
};
}
#[macro_export]
macro_rules! get {
($path:literal, $handler:expr) => {
$crate::route!(get, $path, $handler)
};
($path:literal, $handler:expr, $($extra:tt)*) => {
$crate::route!(get, $path, $handler, $($extra)*)
};
}
#[macro_export]
macro_rules! post {
($path:literal, $handler:expr) => {
$crate::route!(post, $path, $handler)
};
($path:literal, $handler:expr, $($extra:tt)*) => {
$crate::route!(post, $path, $handler, $($extra)*)
};
}
#[macro_export]
macro_rules! put {
($path:literal, $handler:expr) => {
$crate::route!(put, $path, $handler)
};
($path:literal, $handler:expr, $($extra:tt)*) => {
$crate::route!(put, $path, $handler, $($extra)*)
};
}
#[macro_export]
macro_rules! delete {
($path:literal, $handler:expr) => {
$crate::route!(delete, $path, $handler)
};
($path:literal, $handler:expr, $($extra:tt)*) => {
$crate::route!(delete, $path, $handler, $($extra)*)
};
}
#[macro_export]
macro_rules! patch {
($path:literal, $handler:expr) => {
$crate::route!(patch, $path, $handler)
};
($path:literal, $handler:expr, $($extra:tt)*) => {
$crate::route!(patch, $path, $handler, $($extra)*)
};
}
#[macro_export]
macro_rules! head {
($path:literal, $handler:expr) => {
$crate::route!(head, $path, $handler)
};
($path:literal, $handler:expr, $($extra:tt)*) => {
$crate::route!(head, $path, $handler, $($extra)*)
};
}
#[macro_export]
macro_rules! options {
($path:literal, $handler:expr) => {
$crate::route!(options, $path, $handler)
};
($path:literal, $handler:expr, $($extra:tt)*) => {
$crate::route!(options, $path, $handler, $($extra)*)
};
}
#[macro_export]
macro_rules! cfg {
($route:expr) => {
$crate::cfg.service($route)
};
($($route:expr),* $(,)?) => {
$crate::cfg
$(.service($route))*
};
}
#[macro_export]
macro_rules! scope {
($path:literal, { $($content:tt)* }) => {
$crate::cfg.service(
::actix_web::web::scope($path)
.$($content)*
)
};
($path:literal, $($extra:tt)*, { $($content:tt)* }) => {
$crate::cfg.service(
::actix_web::web::scope($path)
.$($extra)*
.$($content)*
)
};
}
#[macro_export]
macro_rules! resource {
($path:literal, $($content:tt)*) => {
$crate::cfg.service(
::actix_web::web::resource($path)
.$($content)*
)
};
($path:literal, $($extra:tt)*, { $($content:tt)* }) => {
$crate::cfg.service(
::actix_web::web::resource($path)
.$($extra)*
.$($content)*
)
};
}