Struct lychee_lib::Uri
source · pub struct Uri { /* private fields */ }
Expand description
Lychee’s own representation of a URI, which encapsulates all supported formats.
If the scheme is mailto
, it’s a mail address.
Otherwise it’s treated as a website URL.
Implementations§
source§impl Uri
impl Uri
sourcepub fn as_str(&self) -> &str
pub fn as_str(&self) -> &str
Returns the string representation of the Uri
.
If it’s an email address, returns the string with scheme stripped. Otherwise returns the string as-is.
sourcepub fn path_segments(&self) -> Option<Split<'_, char>>
pub fn path_segments(&self) -> Option<Split<'_, char>>
Unless this URL is cannot-be-a-base, return an iterator of ‘/’ slash-separated path segments, each as a percent-encoded ASCII string.
Return None
for cannot-be-a-base URLs.
sourcepub fn host_ip(&self) -> Option<IpAddr>
pub fn host_ip(&self) -> Option<IpAddr>
Returns the IP address (either IPv4 or IPv6) of the URI,
or None
if it is a domain
sourcepub fn is_loopback(&self) -> bool
pub fn is_loopback(&self) -> bool
Returns true
if this is a loopback address.
§IPv4
This is a loopback address (127.0.0.0/8
).
This property is defined by IETF RFC 1122.
§IPv6
This is the loopback address (::1
), as defined in IETF RFC 4291 section 2.5.3.
sourcepub fn is_private(&self) -> bool
pub fn is_private(&self) -> bool
Returns true
if this is a private IPv4 address, a unique local IPv6 address (fc00::/7
).
§IPv4
The private address ranges are defined in IETF RFC 1918 and include:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
§IPv6
Unique local address is defined in IETF RFC 4193.
§Note
Unicast site-local network was defined in IETF RFC 4291, but was fully deprecated in IETF RFC 3879. So it is NOT considered as private on this purpose.
sourcepub fn is_link_local(&self) -> bool
pub fn is_link_local(&self) -> bool
Returns true
if the address is a link-local IPv4 address (169.254.0.0/16
),
or an IPv6 unicast address with link-local scope (fe80::/10
).
§IPv4
Link-local address is defined by IETF RFC 3927.
§IPv6
Unicast address with link-local scope is defined in IETF RFC 4291.
Trait Implementations§
source§impl<'de> Deserialize<'de> for Uri
impl<'de> Deserialize<'de> for Uri
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Ord for Uri
impl Ord for Uri
source§impl PartialOrd for Uri
impl PartialOrd for Uri
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl TryFrom<&str> for Uri
impl TryFrom<&str> for Uri
impl Eq for Uri
impl StructuralPartialEq for Uri
Auto Trait Implementations§
impl Freeze for Uri
impl RefUnwindSafe for Uri
impl Send for Uri
impl Sync for Uri
impl Unpin for Uri
impl UnwindSafe for Uri
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<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> FromResponse for Twhere
T: DeserializeOwned,
impl<T> FromResponse for Twhere
T: DeserializeOwned,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§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 moresource§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string
, but without panic on OOM.