Rocket | Как вернуть body из функции `from_request` трейта FromRequest
rustc: 1.60.0
rocket: 0.5.0-rc.1
У меня есть примерно следующий код:
#[rocket::async_trait]
impl<'r> FromRequest<'r> for AuthGuard {
type Error = HubError;
async fn from_request(request: &'r Request<'_>) -> request::Outcome<Self, Self::Error> {
match request.headers().get_one("Authorization") {
...
}
}
}
В конструкции match обрабатываются различные сценарии "невалидности" токена и в зависимости от ситуации я бы хотела иметь возможность в body возвращать json объект с информацией о том, что конкретно пошло не так при обработке токена. К сожаления не соврем понимаю как это сделать.
Единственное как я могу перехватывать эту ошибку - написать глобальный перехватчик:
#[catch(401)]
fn unauthorized() -> HubError {
...
}
Возможно есть какие-то другие альтернативы того, как можно получить нужный результат.