actix_web_httpauth/headers/www_authenticate/
header.rs

1use actix_web::{
2    error::ParseError,
3    http::header::{Header, HeaderName, HeaderValue, TryIntoHeaderValue, WWW_AUTHENTICATE},
4    HttpMessage,
5};
6
7use super::Challenge;
8
9/// `WWW-Authenticate` header, described in [RFC 7235].
10///
11/// This header is generic over the [`Challenge`] trait, see [`Basic`](super::basic::Basic) and
12/// [`Bearer`](super::bearer::Bearer) challenges for details.
13///
14/// [RFC 7235]: https://tools.ietf.org/html/rfc7235#section-4.1
15#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
16pub struct WwwAuthenticate<C: Challenge>(pub C);
17
18impl<C: Challenge> Header for WwwAuthenticate<C> {
19    #[inline]
20    fn name() -> HeaderName {
21        WWW_AUTHENTICATE
22    }
23
24    fn parse<T: HttpMessage>(_msg: &T) -> Result<Self, ParseError> {
25        unimplemented!()
26    }
27}
28
29impl<C: Challenge> TryIntoHeaderValue for WwwAuthenticate<C> {
30    type Error = <C as TryIntoHeaderValue>::Error;
31
32    fn try_into_value(self) -> Result<HeaderValue, Self::Error> {
33        self.0.try_into_value()
34    }
35}