From ac30b18441b6a4b60bf64d28883ba70f360baf99 Mon Sep 17 00:00:00 2001 From: Amey Pawar <138877912+ameyypawar@users.noreply.github.com> Date: Sun, 21 Jun 2026 23:53:12 +0530 Subject: [PATCH] fix(filter): return AsyncFilterLayer from AsyncFilter::layer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `AsyncFilter::layer` is documented to wrap services with an `AsyncFilter` service built from an `AsyncPredicate`, but it returned a `FilterLayer` — which builds a synchronous `Filter` from a `Predicate` — making the constructor unusable for its stated purpose. Return `AsyncFilterLayer` instead, mirroring `Filter::layer`. --- tower/src/filter/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tower/src/filter/mod.rs b/tower/src/filter/mod.rs index 185fa8368..fc065c03c 100644 --- a/tower/src/filter/mod.rs +++ b/tower/src/filter/mod.rs @@ -131,8 +131,8 @@ impl AsyncFilter { /// service with the given [`AsyncPredicate`]. /// /// [`Layer`]: crate::Layer - pub fn layer(predicate: U) -> FilterLayer { - FilterLayer::new(predicate) + pub fn layer(predicate: U) -> AsyncFilterLayer { + AsyncFilterLayer::new(predicate) } /// Check a `Request` value against this filter's predicate.