Struct CombinedHeaderProvider
pub struct CombinedHeaderProvider { /* private fields */ }Expand description
Composes multiple HeaderProviders by fanning out their headers()
calls in parallel and merging the results. On key collisions, later
providers win.
Implementations§
§impl CombinedHeaderProvider
impl CombinedHeaderProvider
pub fn new(providers: Vec<Arc<dyn HeaderProvider>>) -> CombinedHeaderProvider
Trait Implementations§
§impl HeaderProvider for CombinedHeaderProvider
impl HeaderProvider for CombinedHeaderProvider
fn headers<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, HeaderProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
CombinedHeaderProvider: 'async_trait,
§fn headers_refresh<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, HeaderProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
CombinedHeaderProvider: 'async_trait,
fn headers_refresh<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, HeaderProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
CombinedHeaderProvider: 'async_trait,
Like
headers, but forces any cached authentication to
refresh before returning. Request layers call this after the server
rejects a request with an auth error (HTTP 401 / gRPC Unauthenticated)
so a stale-but-unexpired cached token is re-minted instead of failing
until its TTL. The default delegates to headers; auth providers
override it to bypass their session cache and re-authenticate.Auto Trait Implementations§
impl Freeze for CombinedHeaderProvider
impl !RefUnwindSafe for CombinedHeaderProvider
impl Send for CombinedHeaderProvider
impl Sync for CombinedHeaderProvider
impl Unpin for CombinedHeaderProvider
impl UnsafeUnpin for CombinedHeaderProvider
impl !UnwindSafe for CombinedHeaderProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request