mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-03 00:31:50 +00:00
## Proposed Changes Two tiny updates to satisfy Clippy 1.68 Plus refactoring of the `http_api` into less complex types so the compiler can chew and digest them more easily. Co-authored-by: Michael Sproul <michael@sigmaprime.io>
26 lines
783 B
Rust
26 lines
783 B
Rust
use warp::{filters::BoxedFilter, Filter, Rejection};
|
|
|
|
/// Mixin trait for `Filter` providing the unifying-or method.
|
|
pub trait UnifyingOrFilter: Filter<Error = Rejection> + Sized + Send + Sync + 'static
|
|
where
|
|
Self::Extract: Send,
|
|
{
|
|
/// Unifying `or`.
|
|
///
|
|
/// This is a shorthand for `self.or(other).unify().boxed()`, which is useful because it keeps
|
|
/// the filter type simple and prevents type-checker explosions.
|
|
fn uor<F>(self, other: F) -> BoxedFilter<Self::Extract>
|
|
where
|
|
F: Filter<Extract = Self::Extract, Error = Rejection> + Clone + Send + Sync + 'static,
|
|
{
|
|
self.or(other).unify().boxed()
|
|
}
|
|
}
|
|
|
|
impl<F> UnifyingOrFilter for F
|
|
where
|
|
F: Filter<Error = Rejection> + Sized + Send + Sync + 'static,
|
|
F::Extract: Send,
|
|
{
|
|
}
|