2022-04-28 11:53:59 -06:00
use std ::borrow ::Cow ;
2022-04-22 12:24:38 -06:00
use axum ::{ response ::IntoResponse , Json } ;
use serde ::{ Deserialize , Serialize } ;
2021-04-20 10:07:11 -06:00
pub mod history ;
pub mod user ;
2022-04-12 16:06:19 -06:00
pub async fn index ( ) -> & 'static str {
2021-04-20 10:07:11 -06:00
" \" Through the fathomless deeps of space swims the star turtle Great A \u{2019} Tuin, bearing on its back the four giant elephants who carry on their shoulders the mass of the Discworld. \" \n \t -- Sir Terry Pratchett "
}
2022-04-22 12:24:38 -06:00
#[ derive(Debug, Serialize, Deserialize) ]
pub struct ErrorResponse < ' a > {
pub reason : Cow < ' a , str > ,
}
impl < ' a > IntoResponse for ErrorResponseStatus < ' a > {
fn into_response ( self ) -> axum ::response ::Response {
( self . status , Json ( self . error ) ) . into_response ( )
}
}
pub struct ErrorResponseStatus < ' a > {
pub error : ErrorResponse < ' a > ,
pub status : http ::StatusCode ,
}
impl < ' a > ErrorResponse < ' a > {
pub fn with_status ( self , status : http ::StatusCode ) -> ErrorResponseStatus < ' a > {
ErrorResponseStatus {
error : self ,
status ,
}
}
pub fn reply ( reason : & ' a str ) -> ErrorResponse {
Self {
reason : reason . into ( ) ,
}
}
}