cherenkov/server/failure.rs
1//! HTTP status for expected lifecycle failures; validation defaults to 400.
2
3#[derive(Debug)]
4pub(super) struct Failure(pub u16, pub &'static str);
5
6impl std::fmt::Display for Failure {
7 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
8 f.write_str(self.1)
9 }
10}
11
12impl std::error::Error for Failure {}
13
14pub(super) fn status(error: &anyhow::Error) -> u16 {
15 error.downcast_ref::<Failure>().map_or(400, |e| e.0)
16}