This commit is contained in:
nora 2022-09-15 22:26:51 +02:00
parent 28b397587e
commit 3400568387
2 changed files with 5 additions and 5 deletions

View file

@ -1,6 +1,6 @@
use crate::MakeService; use crate::MakeService;
use crate::Service; use crate::Service;
use crate::{Change, Discover}; use crate::{Discover};
use futures_core::Stream; use futures_core::Stream;
use futures_util::future::{self}; use futures_util::future::{self};
use std::hash::Hash; use std::hash::Hash;
@ -52,7 +52,7 @@ impl<MS, Target, Request> Stream for PoolDiscoverer<MS, Target, Request>
where where
MS: MakeService<Target, Request>, MS: MakeService<Target, Request>,
{ {
type Item = Result<Change<usize, DropNotifyService<MS::Service>>, MS::Error>; type Item = Result<(usize, DropNotifyService<MS::Service>), MS::Error>;
fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> { fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
todo!() todo!()
@ -86,6 +86,7 @@ impl<MS, Target, Req> Service<Req> for Pool<MS, Target, Req>
where where
MS: MakeService<Target, Req>, MS: MakeService<Target, Req>,
MS::Error: Into<crate::BoxError>, MS::Error: Into<crate::BoxError>,
Target: Clone,
{ {
type Response = <PinBalance<PoolDiscoverer<MS, Target, Req>, Req> as Service<Req>>::Response; type Response = <PinBalance<PoolDiscoverer<MS, Target, Req>, Req> as Service<Req>>::Response;
type Error = <PinBalance<PoolDiscoverer<MS, Target, Req>, Req> as Service<Req>>::Error; type Error = <PinBalance<PoolDiscoverer<MS, Target, Req>, Req> as Service<Req>>::Error;

View file

@ -12,7 +12,7 @@ pub trait Discover {
impl<K, S, E, D: ?Sized> Discover for D impl<K, S, E, D: ?Sized> Discover for D
where where
D: TryStream<Ok = Change<K, S>, Error = E>, D: TryStream<Ok = (K, S), Error = E>,
K: Eq, K: Eq,
{ {
type Key = K; type Key = K;
@ -20,8 +20,6 @@ where
type Error = E; type Error = E;
} }
pub struct Change<K, V>(K, V);
pub trait Service<Request> { pub trait Service<Request> {
type Response; type Response;
type Error; type Error;
@ -34,3 +32,4 @@ pub trait MakeService<Target, Request> {
type Service: Service<Request, Response = Self::Response, Error = Self::Error>; type Service: Service<Request, Response = Self::Response, Error = Self::Error>;
type Future; type Future;
} }