Use new Cargo features to avoid implicit features for optional dependencies (#1239)

* Fix changelog entry for MSRV change in axum-extra 0.3.5

* Bump MSRV to 1.60 for axum, axum-extra, axum-macros

* Use new Cargo features to avoid implicit features for optional dependencies
This commit is contained in:
Jonas Platte
2022-08-09 18:43:02 +02:00
committed by GitHub
parent d9ef24c5ff
commit 7cbb7cf135
13 changed files with 56 additions and 43 deletions
+6 -6
View File
@@ -5,7 +5,7 @@ use axum::{
response::{IntoResponse, IntoResponseParts, Response, ResponseParts},
Extension,
};
use cookie_lib::PrivateJar;
use cookie::PrivateJar;
use std::{convert::Infallible, fmt, marker::PhantomData};
/// Extractor that grabs private cookies from the request and manages the jar.
@@ -57,7 +57,7 @@ use std::{convert::Infallible, fmt, marker::PhantomData};
/// # let app: Router<axum::body::Body> = app;
/// ```
pub struct PrivateCookieJar<K = Key> {
jar: cookie_lib::CookieJar,
jar: cookie::CookieJar,
key: Key,
// The key used to extract the key extension. Allows users to use multiple keys for different
// jars. Maybe a library wants its own key.
@@ -84,7 +84,7 @@ where
async fn from_request(req: &mut RequestParts<B>) -> Result<Self, Self::Rejection> {
let key = Extension::<K>::from_request(req).await?.0.into();
let mut jar = cookie_lib::CookieJar::new();
let mut jar = cookie::CookieJar::new();
let mut private_jar = jar.private_mut(&key);
for cookie in cookies_from_request(req) {
if let Some(cookie) = private_jar.decrypt(cookie) {
@@ -176,11 +176,11 @@ impl<K> PrivateCookieJar<K> {
}
}
fn private_jar(&self) -> PrivateJar<&'_ cookie_lib::CookieJar> {
fn private_jar(&self) -> PrivateJar<&'_ cookie::CookieJar> {
self.jar.private(&self.key)
}
fn private_jar_mut(&mut self) -> PrivateJar<&'_ mut cookie_lib::CookieJar> {
fn private_jar_mut(&mut self) -> PrivateJar<&'_ mut cookie::CookieJar> {
self.jar.private_mut(&self.key)
}
}
@@ -202,7 +202,7 @@ impl<K> IntoResponse for PrivateCookieJar<K> {
struct PrivateCookieJarIter<'a, K> {
jar: &'a PrivateCookieJar<K>,
iter: cookie_lib::Iter<'a>,
iter: cookie::Iter<'a>,
}
impl<'a, K> Iterator for PrivateCookieJarIter<'a, K> {