22 lines
555 B
Rust
22 lines
555 B
Rust
use crate::endpoints::Endpoint;
|
|
|
|
macro_rules! match_from {
|
|
(($endpoint:expr, $method:expr) in [$($e:ty,)*]) => {
|
|
match ($endpoint, $method) {
|
|
$(
|
|
(<$e as Endpoint>::ENDPOINT, &<$e as Endpoint>::METHOD) => Some(<$e as Default>::default()),
|
|
)*
|
|
_ => None,
|
|
}
|
|
};
|
|
}
|
|
|
|
pub(crate) fn match_endpoint(endpoint: &str, method: &http::Method) -> Option<impl Endpoint> {
|
|
match_from!(
|
|
(endpoint, method)
|
|
in [
|
|
crate::endpoints::user::GetUserById,
|
|
]
|
|
)
|
|
}
|