actix_web_httpauth/headers/www_authenticate/challenge/bearer/
errors.rs1use std::fmt;
2
3use actix_web::http::StatusCode;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
9pub enum Error {
10 InvalidRequest,
14
15 InvalidToken,
17
18 InsufficientScope,
20}
21
22impl Error {
23 #[allow(clippy::trivially_copy_pass_by_ref)]
27 pub fn status_code(&self) -> StatusCode {
28 match self {
29 Error::InvalidRequest => StatusCode::BAD_REQUEST,
30 Error::InvalidToken => StatusCode::UNAUTHORIZED,
31 Error::InsufficientScope => StatusCode::FORBIDDEN,
32 }
33 }
34
35 #[doc(hidden)]
36 #[allow(clippy::trivially_copy_pass_by_ref)]
37 pub fn as_str(&self) -> &str {
38 match self {
39 Error::InvalidRequest => "invalid_request",
40 Error::InvalidToken => "invalid_token",
41 Error::InsufficientScope => "insufficient_scope",
42 }
43 }
44}
45
46impl fmt::Display for Error {
47 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
48 f.write_str(self.as_str())
49 }
50}