mirror of
https://github.com/tokio-rs/axum.git
synced 2026-08-26 00:00:23 +02:00
Remove RequestParts::take_extensions (#699)
* Remove `RequestParts::take_extensions` * fix out of date docs * Remove RequestAlreadyExtracted and replace it with BodyAlreadyExtracted * fix docs * fix test * Update axum-core/src/extract/mod.rs Co-authored-by: Jonas Platte <[email protected]> * Remove macro only used once Co-authored-by: Jonas Platte <[email protected]>
This commit is contained in:
co-authored by
Jonas Platte
parent
184ea656c0
commit
b1ef0be1a7
@@ -3,7 +3,6 @@
|
||||
|
||||
mod de;
|
||||
|
||||
use super::rejection::ExtensionsAlreadyExtracted;
|
||||
use crate::{
|
||||
body::{boxed, Full},
|
||||
extract::{rejection::*, FromRequest, RequestParts},
|
||||
@@ -164,11 +163,7 @@ where
|
||||
type Rejection = PathRejection;
|
||||
|
||||
async fn from_request(req: &mut RequestParts<B>) -> Result<Self, Self::Rejection> {
|
||||
let ext = req
|
||||
.extensions_mut()
|
||||
.ok_or_else::<Self::Rejection, _>(|| ExtensionsAlreadyExtracted::default().into())?;
|
||||
|
||||
let params = match ext.get::<Option<UrlParams>>() {
|
||||
let params = match req.extensions_mut().get::<Option<UrlParams>>() {
|
||||
Some(Some(UrlParams(Ok(params)))) => Cow::Borrowed(params),
|
||||
Some(Some(UrlParams(Err(InvalidUtf8InPathParam { key })))) => {
|
||||
let err = PathDeserializationError {
|
||||
@@ -519,6 +514,9 @@ mod tests {
|
||||
|
||||
let res = client.get("/foo").send().await;
|
||||
assert_eq!(res.status(), StatusCode::INTERNAL_SERVER_ERROR);
|
||||
assert_eq!(res.text().await, "Extensions taken by other extractor");
|
||||
assert_eq!(
|
||||
res.text().await,
|
||||
"No paths parameters found for matched route. Are you also extracting `Request<_>`?"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user