pub struct Challenge<'a> { /* private fields */ }Expand description
One challenge.
§Examples
use parse_net::{auth, Limits};
let c = auth::parse_challenges(b"Bearer realm=\"api\", error=invalid_token", &Limits::DEFAULT)?;
let first = c.iter().next().expect("one challenge");
assert!(first.scheme_is("bearer"));
assert!(first.param("error").is_some_and(|v| v.eq_bytes(b"invalid_token")));Implementations§
Source§impl<'a> Challenge<'a>
impl<'a> Challenge<'a>
Sourcepub const fn scheme(&self) -> &'a [u8] ⓘ
pub const fn scheme(&self) -> &'a [u8] ⓘ
The scheme, as sent.
§Examples
use parse_net::{auth, Limits};
let c = auth::parse_challenges(b"Basic realm=\"x\", Negotiate", &Limits::DEFAULT)?;
let schemes: Vec<&[u8]> = c.iter().map(|x| x.scheme()).collect();
assert_eq!(schemes, [&b"Basic"[..], b"Negotiate"]);Sourcepub fn scheme_is(&self, s: &str) -> bool
pub fn scheme_is(&self, s: &str) -> bool
Whether the scheme is s (ASCII case-insensitive).
§Examples
use parse_net::{auth, Limits};
let c = auth::parse_challenges(b"NEGOTIATE", &Limits::DEFAULT)?;
assert!(c.iter().next().is_some_and(|x| x.scheme_is("negotiate")));Sourcepub const fn payload(&self) -> AuthPayload<'a>
pub const fn payload(&self) -> AuthPayload<'a>
The payload.
§Examples
use parse_net::{auth, AuthPayload, Limits};
let c = auth::parse_challenges(b"Negotiate abc==", &Limits::DEFAULT)?;
let first = c.iter().next().expect("one challenge");
assert_eq!(first.payload(), AuthPayload::Token68(b"abc=="));Sourcepub fn param(&self, name: &str) -> Option<Word<'a>>
pub fn param(&self, name: &str) -> Option<Word<'a>>
The parameter name (realm, error, scope, …).
§Examples
use parse_net::{auth, Limits};
let c = auth::parse_challenges(b"Basic realm=\"simple\", charset=UTF-8", &Limits::DEFAULT)?;
let first = c.iter().next().expect("one challenge");
assert!(first.param("Realm").is_some_and(|v| v.eq_bytes(b"simple")));
assert!(first.param("scope").is_none());Trait Implementations§
impl<'a> Copy for Challenge<'a>
impl<'a> Eq for Challenge<'a>
impl<'a> StructuralPartialEq for Challenge<'a>
Auto Trait Implementations§
impl<'a> Freeze for Challenge<'a>
impl<'a> RefUnwindSafe for Challenge<'a>
impl<'a> Send for Challenge<'a>
impl<'a> Sync for Challenge<'a>
impl<'a> Unpin for Challenge<'a>
impl<'a> UnsafeUnpin for Challenge<'a>
impl<'a> UnwindSafe for Challenge<'a>
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
Mutably borrows from an owned value. Read more