Struct AuthorityRef
pub struct AuthorityRef<'a> { /* private fields */ }net only.Expand description
Borrowed view of an Authority — userinfo + host + port, each
borrowing into the underlying buffer. Mirrors the HostRef /
DomainRef /
UserInfoRef pattern for the rest of the
address types.
Constructed by Uri::authority and
— eventually — by Authority’s own borrow accessor.
PartialEq / Eq / Hash follow the same component-wise rules as
the owned Authority (case-insensitive host via HostRef’s impl,
strict equality on userinfo / port), so the two types are
interchangeable as collection keys.
Implementations§
§impl<'a> AuthorityRef<'a>
impl<'a> AuthorityRef<'a>
pub fn userinfo(&self) -> Option<UserInfoRef<'a>>
pub fn userinfo(&self) -> Option<UserInfoRef<'a>>
Userinfo component, or None if the authority has no @
(RFC 3986 §3.2.1 userinfo is optional).
Some("") (an empty userinfo before the @) is distinct from
None — preserved for wire fidelity.
pub fn host(&self) -> HostRef<'a>
pub fn host(&self) -> HostRef<'a>
The host component. Always present — every well-formed authority has a host.
pub const fn port(&self) -> OptPort
pub const fn port(&self) -> OptPort
The port marker. Distinguishes wire-level Unset / Empty /
Set(u16). Most callers want port_u16 which
collapses to Option<u16>.
pub const fn port_u16(&self) -> Option<u16>
pub const fn port_u16(&self) -> Option<u16>
Relaxed view of the port — Set(n) → Some(n), everything else
None. Use when the Unset vs Empty distinction doesn’t matter.
pub fn into_owned(self) -> Authority
pub fn into_owned(self) -> Authority
Promote this borrowed view to an owned Authority by copying
the underlying bytes. Mirrors the into_owned family on the
other borrowed views.
Trait Implementations§
§impl<'a> Clone for AuthorityRef<'a>
impl<'a> Clone for AuthorityRef<'a>
§fn clone(&self) -> AuthorityRef<'a>
fn clone(&self) -> AuthorityRef<'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<'a> Debug for AuthorityRef<'a>
impl<'a> Debug for AuthorityRef<'a>
§impl Display for AuthorityRef<'_>
impl Display for AuthorityRef<'_>
§fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Renders [userinfo@]host[:port]. Matches Authority’s
Display byte-for-byte.
IPv6 hosts are always bracketed ([ip]), regardless of
whether a port follows — same rule HostWithOptPort’s
Display uses. Without brackets, ::1:8080 would be ambiguous between
“address ::1 + port 8080” and “address ::1:8080, no
port”. We bracket inline here rather than delegating to
HostRef’s Display because that formatter is a standalone-
host renderer that doesn’t compose with :port.
Note: userinfo emission is the Display contract — wire writers
for HTTP request-targets strip userinfo separately
(write_http_authority_form / write_h2_authority on
crate::uri::Uri).
§impl<'a> From<&'a Authority> for AuthorityRef<'a>
impl<'a> From<&'a Authority> for AuthorityRef<'a>
§fn from(a: &'a Authority) -> AuthorityRef<'a>
fn from(a: &'a Authority) -> AuthorityRef<'a>
§impl<'a> Hash for AuthorityRef<'a>
impl<'a> Hash for AuthorityRef<'a>
§impl<'a> Ord for AuthorityRef<'a>
impl<'a> Ord for AuthorityRef<'a>
§fn cmp(&self, other: &AuthorityRef<'a>) -> Ordering
fn cmp(&self, other: &AuthorityRef<'a>) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
§impl<'a> PartialEq for AuthorityRef<'a>
impl<'a> PartialEq for AuthorityRef<'a>
§fn eq(&self, other: &AuthorityRef<'a>) -> bool
fn eq(&self, other: &AuthorityRef<'a>) -> bool
self and other values to be equal, and is used by ==.§impl<'a> PartialOrd for AuthorityRef<'a>
impl<'a> PartialOrd for AuthorityRef<'a>
impl<'a> Copy for AuthorityRef<'a>
impl<'a> Eq for AuthorityRef<'a>
impl<'a> StructuralPartialEq for AuthorityRef<'a>
Auto Trait Implementations§
impl<'a> Freeze for AuthorityRef<'a>
impl<'a> RefUnwindSafe for AuthorityRef<'a>
impl<'a> Send for AuthorityRef<'a>
impl<'a> Sync for AuthorityRef<'a>
impl<'a> Unpin for AuthorityRef<'a>
impl<'a> UnsafeUnpin for AuthorityRef<'a>
impl<'a> UnwindSafe for AuthorityRef<'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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§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<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> 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> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer