1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use tower::{util::Either, Layer};
pub(crate) use tower_http::auth::AddAuthorizationLayer;
mod base_uri;
mod refresh_token;
pub use base_uri::{BaseUri, BaseUriLayer};
pub(crate) use refresh_token::RefreshTokenLayer;
pub struct AuthLayer(pub(crate) Either<AddAuthorizationLayer, RefreshTokenLayer>);
impl<S> Layer<S> for AuthLayer {
type Service =
Either<<AddAuthorizationLayer as Layer<S>>::Service, <RefreshTokenLayer as Layer<S>>::Service>;
fn layer(&self, inner: S) -> Self::Service {
self.0.layer(inner)
}
}