Struct Basic
pub struct Basic { /* private fields */ }net only.Expand description
Basic credentials.
Implementations§
§impl Basic
impl Basic
pub const fn new(username: NonEmptyStr, password: NonEmptyStr) -> Basic
pub const fn new(username: NonEmptyStr, password: NonEmptyStr) -> Basic
Creates a new Basic credential.
pub fn clone_with_new_username(&self, username: NonEmptyStr) -> Basic
pub fn clone_with_new_password(&self, password: NonEmptyStr) -> Basic
pub const fn new_insecure(username: NonEmptyStr) -> Basic
pub const fn new_insecure(username: NonEmptyStr) -> Basic
Creates a new Basic credential.
pub fn with_username(self, username: NonEmptyStr) -> Basic
pub fn with_username(self, username: NonEmptyStr) -> Basic
Set or overwrite the username with the given value.
pub fn set_username(&mut self, username: NonEmptyStr) -> &mut Basic
pub fn set_username(&mut self, username: NonEmptyStr) -> &mut Basic
Set or overwrite the username with the given value.
pub fn password(&self) -> Option<&str>
pub fn password(&self) -> Option<&str>
View the decoded password.
If Some(str) is returned it is guaranteed to be non-empty.
pub fn with_password(self, password: NonEmptyStr) -> Basic
pub fn with_password(self, password: NonEmptyStr) -> Basic
Set or overwrite the password with the given value.
pub fn set_password(&mut self, password: NonEmptyStr) -> &mut Basic
pub fn set_password(&mut self, password: NonEmptyStr) -> &mut Basic
Set or overwrite the password with the given value.
Turn itself into a StaticAuthorizer, so it can be used to authorize.
Just a shortcut, QoL.
Trait Implementations§
§impl<T> AuthoritySync<Basic, T> for Basicwhere
T: UsernameLabelParser,
impl<T> AuthoritySync<Basic, T> for Basicwhere
T: UsernameLabelParser,
true if the credentials are authorized, otherwise false.§impl Credentials for Basic
impl Credentials for Basic
impl Eq for Basic
impl Extension for Basic
§impl From<Basic> for UserInfo
Construct a UserInfo from a Basic credential by
percent-encoding each component into the RFC 3986 §3.2.1 userinfo
wire form. The username escapes : (so the first literal : is
unambiguously the user/password separator); the password keeps :
literal. @, space, and every other non-userinfo byte become %XX,
so the result re-parses cleanly through UserInfo::try_from and
decodes back to the original credential via UserInfo::to_basic.
impl From<Basic> for UserInfo
Construct a UserInfo from a Basic credential by
percent-encoding each component into the RFC 3986 §3.2.1 userinfo
wire form. The username escapes : (so the first literal : is
unambiguously the user/password separator); the password keeps :
literal. @, space, and every other non-userinfo byte become %XX,
so the result re-parses cleanly through UserInfo::try_from and
decodes back to the original credential via UserInfo::to_basic.
§Round-trip invariant
Encoding always yields grammar-valid userinfo. The Basic →
UserInfo → UserInfo::try_from round-trip holds for exactly the
Basic values whose components are free of control bytes
(0x00–0x1F / 0x7F): any control byte encodes to a %XX escape
that strict parsing then refuses as a pct-decoded-control smuggling
vector. Basic::try_from pre-rejects \r / \n / NUL, but the
typed constructors (Basic::new, the with_/set_ setters,
clone_with_*) do not validate, so any control byte can reach this
obscure residual regardless of which entry point built the Basic.
§impl From<Basic> for ProxyCredential
impl From<Basic> for ProxyCredential
§fn from(basic: Basic) -> ProxyCredential
fn from(basic: Basic) -> ProxyCredential
§impl From<Basic> for HttpAuthorizer<StaticAuthorizer<Basic>, Basic>
impl From<Basic> for HttpAuthorizer<StaticAuthorizer<Basic>, Basic>
§fn from(value: Basic) -> HttpAuthorizer<StaticAuthorizer<Basic>, Basic>
fn from(value: Basic) -> HttpAuthorizer<StaticAuthorizer<Basic>, Basic>
§impl From<Basic> for Socks5Auth
impl From<Basic> for Socks5Auth
§fn from(value: Basic) -> Socks5Auth
fn from(value: Basic) -> Socks5Auth
impl NetExtension for Basic
§impl TryFrom<&UserInfo> for Basic
impl TryFrom<&UserInfo> for Basic
Auto Trait Implementations§
impl Freeze for Basic
impl RefUnwindSafe for Basic
impl Send for Basic
impl Sync for Basic
impl Unpin for Basic
impl UnsafeUnpin for Basic
impl UnwindSafe for Basic
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,
§impl<A, C, L> Authority<C, L> for A
impl<A, C, L> Authority<C, L> for A
true if the credentials are authorized, otherwise false.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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§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