Struct HostSource
pub struct HostSource { /* private fields */ }http only.Expand description
A CSP host-source value: optional scheme, a Domain (which may
itself be a wildcard subdomain), optional port (concrete or *),
optional path.
Construct directly from a Domain for the common case, or via
HostSource::try_parse from a wire-format string.
Implementations§
§impl HostSource
impl HostSource
pub fn new(host: Domain) -> HostSource
pub fn new(host: Domain) -> HostSource
Wrap a bare Domain — no scheme, port, or path.
pub fn try_parse(s: &str) -> Result<HostSource, Error>
pub fn try_parse(s: &str) -> Result<HostSource, Error>
Parse a CSP host-source from its wire form
([scheme://]host[:port][/path]). Hosts with a leading *.
wildcard, port *, and arbitrary path tails are all accepted.
pub fn port(&self) -> Option<HostSourcePort>
pub fn port(&self) -> Option<HostSourcePort>
The optional port component.
pub fn path(&self) -> Option<&str>
pub fn path(&self) -> Option<&str>
The optional path component (kept verbatim, including the
leading /).
pub fn with_scheme(self, scheme: Protocol) -> HostSource
pub fn with_scheme(self, scheme: Protocol) -> HostSource
Attach a scheme component (rendered as <scheme>://…).
pub fn set_scheme(&mut self, scheme: Protocol) -> &mut HostSource
pub fn set_scheme(&mut self, scheme: Protocol) -> &mut HostSource
Attach a scheme component (rendered as <scheme>://…).
pub fn with_port(self, port: u16) -> HostSource
pub fn with_port(self, port: u16) -> HostSource
Attach a concrete port component.
pub fn set_port(&mut self, port: u16) -> &mut HostSource
pub fn set_port(&mut self, port: u16) -> &mut HostSource
Attach a concrete port component.
pub fn with_any_port(self) -> HostSource
pub fn with_any_port(self) -> HostSource
Attach the * (any-port) component.
pub fn set_any_port(&mut self) -> &mut HostSource
pub fn set_any_port(&mut self) -> &mut HostSource
Attach the * (any-port) component.
pub fn with_path(self, path: impl Into<Cow<'static, str>>) -> HostSource
pub fn with_path(self, path: impl Into<Cow<'static, str>>) -> HostSource
Attach a path component (will be rendered verbatim — caller
keeps the leading /).
pub fn set_path(
&mut self,
path: impl Into<Cow<'static, str>>,
) -> &mut HostSource
pub fn set_path( &mut self, path: impl Into<Cow<'static, str>>, ) -> &mut HostSource
Attach a path component (will be rendered verbatim — caller
keeps the leading /).
Trait Implementations§
§impl Clone for HostSource
impl Clone for HostSource
§fn clone(&self) -> HostSource
fn clone(&self) -> HostSource
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for HostSource
impl Debug for HostSource
§impl Display for HostSource
impl Display for HostSource
§impl From<Domain> for HostSource
impl From<Domain> for HostSource
§fn from(host: Domain) -> HostSource
fn from(host: Domain) -> HostSource
§impl From<HostSource> for SourceExpression
impl From<HostSource> for SourceExpression
§fn from(h: HostSource) -> SourceExpression
fn from(h: HostSource) -> SourceExpression
§impl FromStr for HostSource
impl FromStr for HostSource
§impl Hash for HostSource
impl Hash for HostSource
§impl PartialEq for HostSource
impl PartialEq for HostSource
§impl<'a> TryFrom<&'a str> for HostSource
impl<'a> TryFrom<&'a str> for HostSource
§impl TryFrom<String> for HostSource
impl TryFrom<String> for HostSource
impl Eq for HostSource
impl StructuralPartialEq for HostSource
Auto Trait Implementations§
impl Freeze for HostSource
impl RefUnwindSafe for HostSource
impl Send for HostSource
impl Sync for HostSource
impl Unpin for HostSource
impl UnsafeUnpin for HostSource
impl UnwindSafe for HostSource
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> 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