pub struct Basic { /* private fields */ }Expand description
Basic credentials.
Implementations§
Source§impl Basic
impl Basic
Sourcepub const fn new(username: NonEmptyStr, password: NonEmptyStr) -> Self
pub const fn new(username: NonEmptyStr, password: NonEmptyStr) -> Self
Creates a new Basic credential.
pub fn clone_with_new_username(&self, username: NonEmptyStr) -> Self
pub fn clone_with_new_password(&self, password: NonEmptyStr) -> Self
Sourcepub const fn new_insecure(username: NonEmptyStr) -> Self
pub const fn new_insecure(username: NonEmptyStr) -> Self
Creates a new Basic credential.
Sourcepub fn with_username(self, username: NonEmptyStr) -> Self
pub fn with_username(self, username: NonEmptyStr) -> Self
Set or overwrite the username with the given value.
Sourcepub fn set_username(&mut self, username: NonEmptyStr) -> &mut Self
pub fn set_username(&mut self, username: NonEmptyStr) -> &mut Self
Set or overwrite the username with the given value.
Sourcepub 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.
Sourcepub fn with_password(self, password: NonEmptyStr) -> Self
pub fn with_password(self, password: NonEmptyStr) -> Self
Set or overwrite the password with the given value.
Sourcepub fn set_password(&mut self, password: NonEmptyStr) -> &mut Self
pub fn set_password(&mut self, password: NonEmptyStr) -> &mut Self
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 Eq for Basic
impl Extension for Basic
Source§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.
Source§impl From<Basic> for ProxyCredential
impl From<Basic> for ProxyCredential
impl NetExtension for Basic
Source§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§
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,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
Source§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,
Source§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
Source§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writerSource§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
Source§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writerSource§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
Source§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writerSource§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
Source§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writerSource§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
Source§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer