mirror of https://github.com/rwf2/Rocket.git
79 lines
1.9 KiB
Rust
79 lines
1.9 KiB
Rust
mod empty;
|
|
mod responder;
|
|
mod redirect;
|
|
mod with_status;
|
|
mod outcome;
|
|
mod flash;
|
|
mod data_type;
|
|
mod named_file;
|
|
mod stream;
|
|
|
|
pub use hyper::server::Response as HyperResponse;
|
|
pub use hyper::net::Fresh as HyperFresh;
|
|
pub use hyper::status::StatusCode;
|
|
pub use hyper::header;
|
|
pub use hyper::mime;
|
|
|
|
pub use self::data_type::*;
|
|
pub use self::responder::Responder;
|
|
pub use self::empty::{Empty, Forward};
|
|
pub use self::redirect::Redirect;
|
|
pub use self::with_status::StatusResponse;
|
|
pub use self::outcome::Outcome;
|
|
pub use self::flash::Flash;
|
|
pub use self::named_file::NamedFile;
|
|
pub use self::stream::Stream;
|
|
|
|
use std::ops::{Deref, DerefMut};
|
|
|
|
pub type FreshHyperResponse<'a> = HyperResponse<'a, HyperFresh>;
|
|
|
|
pub struct Response<'a>(Box<Responder + 'a>);
|
|
|
|
impl<'a> Response<'a> {
|
|
pub fn new<T: Responder + 'a>(body: T) -> Response<'a> {
|
|
Response(Box::new(body))
|
|
}
|
|
|
|
pub fn with_status<T: Responder + 'a>(status: StatusCode, body: T)
|
|
-> Response<'a> {
|
|
Response(Box::new(StatusResponse::new(status, body)))
|
|
}
|
|
|
|
pub fn forward() -> Response<'a> {
|
|
Response(Box::new(Forward))
|
|
}
|
|
|
|
pub fn with_raw_status<T: Responder + 'a>(status: u16, body: T)
|
|
-> Response<'a> {
|
|
let status_code = StatusCode::from_u16(status);
|
|
Response(Box::new(StatusResponse::new(status_code, body)))
|
|
}
|
|
|
|
pub fn empty() -> Response<'a> {
|
|
Response(Box::new(Empty::new(StatusCode::Ok)))
|
|
}
|
|
|
|
pub fn not_found() -> Response<'a> {
|
|
Response(Box::new(Empty::new(StatusCode::NotFound)))
|
|
}
|
|
|
|
pub fn server_error() -> Response<'a> {
|
|
Response(Box::new(Empty::new(StatusCode::InternalServerError)))
|
|
}
|
|
}
|
|
|
|
impl<'a> Deref for Response<'a> {
|
|
type Target = Box<Responder + 'a>;
|
|
|
|
fn deref(&self) -> &Self::Target {
|
|
&self.0
|
|
}
|
|
}
|
|
|
|
impl<'a> DerefMut for Response<'a> {
|
|
fn deref_mut(&mut self) -> &mut Box<Responder + 'a> {
|
|
&mut self.0
|
|
}
|
|
}
|