Skip to main content

DomainScope

Enum DomainScope 

Source
pub enum DomainScope {
    Global,
    Local,
    Literal(LiteralScope),
}
Expand description

How far a domain reaches.

Obtained from EmailAddress::domain_scope.

Variants§

§

Global

A name the global DNS can resolve.

With the psl feature this is the stronger reading, a name under a published public suffix; without it, the weaker one, a final label that is TLD-like. Either way, a name reserved by the documents listed on Local is not one of these.

§

Local

A name reserved for use inside a network, or a single label, which has no meaning outside the resolver that is asked.

The reserved names, each with the document reserving it:

NameReserved by
.localhostRFC 6761 §6.3
.testRFC 6761 §6.2
.invalidRFC 6761 §6.4
.exampleRFC 6761 §6.5
.localRFC 6762 §3
home.arpaRFC 8375 §2
.internalICANN Board resolution 2024.07.29.05
.onionRFC 7686 §1
.altRFC 9476 §2

The last two are resolved by something other than the DNS rather than reserved for a network, so the global DNS cannot resolve them however far the name travels.

A name whose final label is not TLD-like, or which is under no published public suffix, lands here too: it is a name only the resolver being asked can answer for.

§

Literal(LiteralScope)

An address literal, which names a host directly rather than through the DNS.

Implementations§

Source§

impl DomainScope

Source

pub fn is_global(&self) -> bool

Whether the domain names something reachable from the public internet.

True for Global and for a literal holding an address outside the reserved ranges. A General-address-literal is never one of these: its body is meaningful only to the system receiving it.

Trait Implementations§

Source§

impl Clone for DomainScope

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for DomainScope

Source§

impl Debug for DomainScope

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for DomainScope

Source§

impl Hash for DomainScope

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for DomainScope

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for DomainScope

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.