Enum ServerName
#[non_exhaustive]pub enum ServerName<'a> {
DnsName(DnsName<'a>),
IpAddress(IpAddr),
}crypto and std only.Expand description
Encodes ways a client can know the expected name of the server.
This currently covers knowing the DNS name of the server, but
will be extended in the future to supporting privacy-preserving names
for the server (“ECH”). For this reason this enum is non_exhaustive.
§Making one
If you have a DNS name as a &str, this type implements TryFrom<&str>,
so you can do:
ServerName::try_from("example.com").expect("invalid DNS name");If you have an owned String, you can use TryFrom directly:
let name = "example.com".to_string();
#[cfg(feature = "alloc")]
ServerName::try_from(name).expect("invalid DNS name");which will yield a ServerName<'static> if successful.
or, alternatively…
let x: ServerName = "example.com".try_into().expect("invalid DNS name");Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
DnsName(DnsName<'a>)
The server is identified by a DNS name. The name is sent in the TLS Server Name Indication (SNI) extension.
IpAddress(IpAddr)
The server is identified by an IP address. SNI is not done.
Implementations§
§impl ServerName<'_>
impl ServerName<'_>
pub fn to_owned(&self) -> ServerName<'static>
Available on crate feature alloc only.
pub fn to_owned(&self) -> ServerName<'static>
alloc only.Produce an owned ServerName from this (potentially borrowed) ServerName.
Trait Implementations§
§impl<'a> Clone for ServerName<'a>
impl<'a> Clone for ServerName<'a>
§fn clone(&self) -> ServerName<'a>
fn clone(&self) -> ServerName<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for ServerName<'_>
impl Debug for ServerName<'_>
impl<'a> Eq for ServerName<'a>
§impl<'a> From<DnsName<'a>> for ServerName<'a>
impl<'a> From<DnsName<'a>> for ServerName<'a>
§fn from(dns_name: DnsName<'a>) -> ServerName<'a>
fn from(dns_name: DnsName<'a>) -> ServerName<'a>
§impl From<IpAddr> for ServerName<'_>
impl From<IpAddr> for ServerName<'_>
§fn from(addr: IpAddr) -> ServerName<'_>
fn from(addr: IpAddr) -> ServerName<'_>
§impl From<IpAddr> for ServerName<'_>
impl From<IpAddr> for ServerName<'_>
§fn from(addr: IpAddr) -> ServerName<'_>
fn from(addr: IpAddr) -> ServerName<'_>
§impl From<Ipv4Addr> for ServerName<'_>
impl From<Ipv4Addr> for ServerName<'_>
§fn from(v4: Ipv4Addr) -> ServerName<'_>
fn from(v4: Ipv4Addr) -> ServerName<'_>
§impl From<Ipv4Addr> for ServerName<'_>
impl From<Ipv4Addr> for ServerName<'_>
§fn from(v4: Ipv4Addr) -> ServerName<'_>
fn from(v4: Ipv4Addr) -> ServerName<'_>
§impl From<Ipv6Addr> for ServerName<'_>
impl From<Ipv6Addr> for ServerName<'_>
§fn from(v6: Ipv6Addr) -> ServerName<'_>
fn from(v6: Ipv6Addr) -> ServerName<'_>
§impl From<Ipv6Addr> for ServerName<'_>
impl From<Ipv6Addr> for ServerName<'_>
§fn from(v6: Ipv6Addr) -> ServerName<'_>
fn from(v6: Ipv6Addr) -> ServerName<'_>
§impl<'a> Hash for ServerName<'a>
impl<'a> Hash for ServerName<'a>
§impl<'a> PartialEq for ServerName<'a>
impl<'a> PartialEq for ServerName<'a>
§impl<'a> RamaTryFrom<&'a Host, RamaTlsRustlsCrateMarker> for ServerName<'a>
impl<'a> RamaTryFrom<&'a Host, RamaTlsRustlsCrateMarker> for ServerName<'a>
type Error = Box<dyn Error + Sync + Send>
fn rama_try_from( value: &'a Host, ) -> Result<ServerName<'a>, <ServerName<'a> as RamaTryFrom<&'a Host, RamaTlsRustlsCrateMarker>>::Error>
§impl<'a> RamaTryFrom<&ServerName<'a>, RamaTlsRustlsCrateMarker> for Host
impl<'a> RamaTryFrom<&ServerName<'a>, RamaTlsRustlsCrateMarker> for Host
type Error = Box<dyn Error + Sync + Send>
fn rama_try_from( value: &ServerName<'a>, ) -> Result<Host, <Host as RamaTryFrom<&ServerName<'a>, RamaTlsRustlsCrateMarker>>::Error>
§impl RamaTryFrom<Host, RamaTlsRustlsCrateMarker> for ServerName<'_>
impl RamaTryFrom<Host, RamaTlsRustlsCrateMarker> for ServerName<'_>
type Error = Box<dyn Error + Sync + Send>
fn rama_try_from( value: Host, ) -> Result<ServerName<'_>, <ServerName<'_> as RamaTryFrom<Host, RamaTlsRustlsCrateMarker>>::Error>
§impl<'a> RamaTryFrom<ServerName<'a>, RamaTlsRustlsCrateMarker> for Host
impl<'a> RamaTryFrom<ServerName<'a>, RamaTlsRustlsCrateMarker> for Host
type Error = Box<dyn Error + Sync + Send>
fn rama_try_from( value: ServerName<'a>, ) -> Result<Host, <Host as RamaTryFrom<ServerName<'a>, RamaTlsRustlsCrateMarker>>::Error>
impl<'a> StructuralPartialEq for ServerName<'a>
§impl<'a> TryFrom<&'a [u8]> for ServerName<'a>
impl<'a> TryFrom<&'a [u8]> for ServerName<'a>
§type Error = InvalidDnsNameError
type Error = InvalidDnsNameError
§fn try_from(
value: &'a [u8],
) -> Result<ServerName<'a>, <ServerName<'a> as TryFrom<&'a [u8]>>::Error>
fn try_from( value: &'a [u8], ) -> Result<ServerName<'a>, <ServerName<'a> as TryFrom<&'a [u8]>>::Error>
§impl<'a> TryFrom<&'a str> for ServerName<'a>
Attempt to make a ServerName from a string by parsing as a DNS name or IP address.
impl<'a> TryFrom<&'a str> for ServerName<'a>
Attempt to make a ServerName from a string by parsing as a DNS name or IP address.
§type Error = InvalidDnsNameError
type Error = InvalidDnsNameError
§fn try_from(
s: &'a str,
) -> Result<ServerName<'a>, <ServerName<'a> as TryFrom<&'a str>>::Error>
fn try_from( s: &'a str, ) -> Result<ServerName<'a>, <ServerName<'a> as TryFrom<&'a str>>::Error>
§impl TryFrom<String> for ServerName<'static>
Available on crate feature alloc only.
impl TryFrom<String> for ServerName<'static>
alloc only.§type Error = InvalidDnsNameError
type Error = InvalidDnsNameError
§fn try_from(
value: String,
) -> Result<ServerName<'static>, <ServerName<'static> as TryFrom<String>>::Error>
fn try_from( value: String, ) -> Result<ServerName<'static>, <ServerName<'static> as TryFrom<String>>::Error>
Auto Trait Implementations§
impl<'a> Freeze for ServerName<'a>
impl<'a> RefUnwindSafe for ServerName<'a>
impl<'a> Send for ServerName<'a>
impl<'a> Sync for ServerName<'a>
impl<'a> Unpin for ServerName<'a>
impl<'a> UnsafeUnpin for ServerName<'a>
impl<'a> UnwindSafe for ServerName<'a>
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<T> Conv for T
impl<T> Conv for T
§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<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
impl<T> ErasedDestructor for Twhere
T: 'static,
§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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§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§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.