INNER CODE UNIT · Rust
call
vercel-community/rust · crates/vercel_runtime_router/src/lib.rs:203
pub fn call(&self, req_path: &str) -> Option<&Route> {
// Check if there is an optional catch all route
if let Some(optional_catch_all) = self.routes.iter().find(|r| {
let dynamic_optional_catch_all_exp = Regex::new(r"\[{2}\.{3}\S+\]{2}").unwrap();
let optional_catchall_route =
dynamic_optional_catch_all_exp.replace_all(r.path.as_str(), "");
let optional_catchall_route = optional_catchall_route.trim_end_matches('/');
r.kind == RouteKind::OptionalCatchAll && req_path == optional_catchall_route
}) {
return Some(optional_catch_all);
};
let result = self.routes.iter().find(|route| {
match route.kind {
RouteKind::Static => route.path == req_path,
RouteKind::Dynamic => {
let path_segements = get_segments(req_path);