Enum rustls::pki_types::ServerName
source · #[non_exhaustive]pub enum ServerName<'a> {
DnsName(DnsName<'a>),
IpAddress(IpAddr),
}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§
source§impl<'a> ServerName<'a>
impl<'a> ServerName<'a>
sourcepub 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§
source§impl<'a> Clone for ServerName<'a>
impl<'a> Clone for ServerName<'a>
source§fn clone(&self) -> ServerName<'a>
fn clone(&self) -> ServerName<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl<'a> Debug for ServerName<'a>
impl<'a> Debug for ServerName<'a>
source§impl<'a> Hash for ServerName<'a>
impl<'a> Hash for ServerName<'a>
source§impl<'a> PartialEq for ServerName<'a>
impl<'a> PartialEq for ServerName<'a>
source§fn eq(&self, other: &ServerName<'a>) -> bool
fn eq(&self, other: &ServerName<'a>) -> bool
self and other values to be equal, and is used
by ==.source§impl<'a> TryFrom<&'a [u8]> for ServerName<'a>
impl<'a> TryFrom<&'a [u8]> for ServerName<'a>
§type Error = InvalidDnsNameError
type Error = InvalidDnsNameError
source§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>
source§impl<'a> TryFrom<&'a str> for ServerName<'a>
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
source§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>
source§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
source§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>
impl<'a> Eq for ServerName<'a>
impl<'a> StructuralPartialEq for ServerName<'a>
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> UnwindSafe for ServerName<'a>
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 32 bytes
Size for each variant:
DnsName: 31 bytesIpAddress: 17 bytes