Struct fqdn::FQDN [−][src]
pub struct FQDN(_);Expand description
A FQDN string.
The inner byte sequence is conformed with the RFC-1035: each label of the FQDN is prefixed by a length byte and the sequence is nul-terminated.
For instance, the FQDN github.com. is exactly represented as b"\x06github\x03com\x00".
FQDN is to &Fqdn as String is to &str: the former
in each pair are owned data; the latter are borrowed references.
Methods from Deref<Target = Fqdn>
Checks if this is the top domain.
The human-readable representation of the top domain is the single dot ..
Checks if this domain is an descendant of another one.
Example
assert![ fqdn!("github.com.").is_subdomain_of(&fqdn!("github.com.")) ];
assert![ fqdn!("www.rust-lang.github.com").is_subdomain_of(&fqdn!("github.com.")) ];
assert![ ! fqdn!("github.com.").is_subdomain_of(&fqdn!("www.rust-lang.github.com")) ];Gets the top level domain.
The TLD is the last part of a FQDN.
For instance, the TLD of rust-lang.github.io. is io.
If the FQDN is already a TLD, self is returned.
If the FQDN is the top domain, None is returned.
Example
assert_eq![ fqdn!("rust-lang.github.com.").tld(), Some(fqdn!("com.").as_ref()) ];
assert_eq![ fqdn!(".").tld(), None ];Extracts a Fqdn slice with contains the immediate parent domain.
The parent is the domain after remaining the first label.
If it is already the top domain, then None is returned.
To iterate over the hierarchy of a FQDN, consider Self::hierarchy
Example
assert_eq![ fqdn!("github.com").parent(), Some(fqdn!("com").as_ref()) ];
assert_eq![ fqdn!("github.com").parent().unwrap().parent(), None ];
assert_eq![ fqdn!(".").parent(), None ];Iterates over the parents of the FQDN.
Example
let fqdn = fqdn!("rust-lang.github.com.");
let mut iter = fqdn.hierarchy();
assert_eq![ iter.next(), Some(fqdn!("rust-lang.github.com.").as_ref()) ];
assert_eq![ iter.next(), Some(fqdn!("github.com.").as_ref()) ];
assert_eq![ iter.next(), Some(fqdn!("com.").as_ref()) ];
assert_eq![ iter.next(), None ];Computes the depth of this domain (i.e. counts the labels)
Example
assert_eq![ fqdn!("rust-lang.github.com.").depth(), 3 ];
assert_eq![ fqdn!("github.com.").depth(), 2 ];
assert_eq![ fqdn!(".").depth(), 0 ];Returns the complete byte sequence of the FQDN.
The returned sequence is terminated by the nul byte.
Example
assert_eq![ fqdn!("crates.io.").as_bytes(), b"\x06crates\x02io\x00" ];Iterates over the labels which constitutes the FQDN.
Example
let fqdn = fqdn!("rust-lang.github.com.");
let mut iter = fqdn.labels();
assert_eq![ iter.next(), Some("rust-lang") ];
assert_eq![ iter.next(), Some("github") ];
assert_eq![ iter.next(), Some("com") ];
assert_eq![ iter.next(), None ];Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for FQDN
impl UnwindSafe for FQDN
Blanket Implementations
Mutably borrows from an owned value. Read more