mirror of
https://github.com/tokio-rs/axum.git
synced 2024-11-22 07:08:16 +01:00
Avoid cloning the uri/path
This commit is contained in:
parent
9feb526c03
commit
1e118ccca9
1 changed files with 6 additions and 5 deletions
|
@ -367,9 +367,9 @@ where
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let path = req.uri().path().to_owned();
|
let (mut parts, body) = req.into_parts();
|
||||||
|
|
||||||
match self.node.at(&path) {
|
match self.node.at(parts.uri.path()) {
|
||||||
Ok(match_) => {
|
Ok(match_) => {
|
||||||
let id = *match_.value;
|
let id = *match_.value;
|
||||||
|
|
||||||
|
@ -378,17 +378,18 @@ where
|
||||||
crate::extract::matched_path::set_matched_path_for_request(
|
crate::extract::matched_path::set_matched_path_for_request(
|
||||||
id,
|
id,
|
||||||
&self.node.route_id_to_path,
|
&self.node.route_id_to_path,
|
||||||
req.extensions_mut(),
|
&mut parts.extensions,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
url_params::insert_url_params(req.extensions_mut(), match_.params);
|
url_params::insert_url_params(&mut parts.extensions, match_.params);
|
||||||
|
|
||||||
let endpoint = self
|
let endpoint = self
|
||||||
.routes
|
.routes
|
||||||
.get(&id)
|
.get(&id)
|
||||||
.expect("no route for id. This is a bug in axum. Please file an issue");
|
.expect("no route for id. This is a bug in axum. Please file an issue");
|
||||||
|
|
||||||
|
let req = Request::from_parts(parts, body);
|
||||||
match endpoint {
|
match endpoint {
|
||||||
Endpoint::MethodRouter(method_router) => {
|
Endpoint::MethodRouter(method_router) => {
|
||||||
Ok(method_router.call_with_state(req, state))
|
Ok(method_router.call_with_state(req, state))
|
||||||
|
@ -398,7 +399,7 @@ where
|
||||||
}
|
}
|
||||||
// explicitly handle all variants in case matchit adds
|
// explicitly handle all variants in case matchit adds
|
||||||
// new ones we need to handle differently
|
// new ones we need to handle differently
|
||||||
Err(MatchError::NotFound) => Err((req, state)),
|
Err(MatchError::NotFound) => Err((Request::from_parts(parts, body), state)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue