MiddlewareNext iterator without Box

Thanks @jsha for showing me the way.
This commit is contained in:
Martin Algesten
2021-12-21 08:39:16 +01:00
parent 43680335dc
commit 81c0e66ec7
3 changed files with 21 additions and 11 deletions

View File

@@ -43,7 +43,7 @@ pub struct AgentBuilder {
#[cfg(feature = "cookies")]
cookie_store: Option<CookieStore>,
resolver: ArcResolver,
middleware: Vec<Arc<dyn Middleware + Send + Sync>>,
middleware: Vec<Box<dyn Middleware + Send + Sync>>,
}
/// Config as built by AgentBuilder and then static for the lifetime of the Agent.
@@ -111,7 +111,7 @@ pub(crate) struct AgentState {
#[cfg(feature = "cookies")]
pub(crate) cookie_tin: CookieTin,
pub(crate) resolver: ArcResolver,
pub(crate) middleware: Vec<Arc<dyn Middleware + Send + Sync>>,
pub(crate) middleware: Vec<Box<dyn Middleware + Send + Sync>>,
}
impl Agent {
@@ -602,7 +602,7 @@ impl AgentBuilder {
/// All requests made by the agent will use this middleware. Middleware is invoked
/// in the order they are added to the builder.
pub fn middleware(mut self, m: impl Middleware + Send + Sync + 'static) -> Self {
self.middleware.push(Arc::new(m));
self.middleware.push(Box::new(m));
self
}
}