Struct TlsPoolId
pub struct TlsPoolId { /* private fields */ }tls only.Expand description
Compact, process-local identity of request-level TLS overrides.
Construct with Self::builder. An absent override differs from an explicit
default: the latter might replace a different connector default. Equivalent
common settings have the same identity regardless of the TLS implementation.
This identifies overrides within a pool with fixed connector defaults. It
neither identifies a destination nor authenticates a peer, and is not a stable
serialization or a TLS wire fingerprint. Custom identities are captured by
value; instance identities retain their owners to prevent address reuse from
matching a different policy. Pools must check Self::is_reusable at checkout
and return.
Implementations§
§impl TlsPoolId
impl TlsPoolId
pub fn builder<'a>() -> TlsPoolIdBuilder<'a>
Available on crate feature boring only.
pub fn builder<'a>() -> TlsPoolIdBuilder<'a>
boring only.Begin an identity without request overrides.
Set the request overrides through the typed builder methods.
use rama_net::tls::TlsAlpn;
use rama_tls::client::{ServerVerifyMode, TlsPoolId, TlsServerVerify};
let alpn = TlsAlpn::http_2();
let verify = TlsServerVerify(ServerVerifyMode::Auto);
let id = TlsPoolId::builder()
.with_alpn(&alpn)
.with_verify(&verify)
.build()
.unwrap();
assert!(id.is_reusable());pub const fn non_reusable() -> TlsPoolId
Available on crate feature boring only.
pub const fn non_reusable() -> TlsPoolId
boring only.Require a fresh connection that is discarded after use.
pub const fn is_reusable(&self) -> bool
Available on crate feature boring only.
pub const fn is_reusable(&self) -> bool
boring only.Whether this identity may participate in connection reuse.
Trait Implementations§
impl Eq for TlsPoolId
impl Extension for TlsPoolId
impl TlsExtension for TlsPoolId
Auto Trait Implementations§
impl !RefUnwindSafe for TlsPoolId
impl !UnwindSafe for TlsPoolId
impl Freeze for TlsPoolId
impl Send for TlsPoolId
impl Sync for TlsPoolId
impl Unpin for TlsPoolId
impl UnsafeUnpin for TlsPoolId
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§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> ⓘ
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> ⓘ
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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more