mirror of
https://github.com/actix/actix-web.git
synced 2024-11-18 23:51:14 +00:00
more default impls for FromRequest
This commit is contained in:
parent
fb3185de94
commit
6bc7d60f52
2 changed files with 64 additions and 2 deletions
|
@ -12,7 +12,9 @@ use serde::Serialize;
|
|||
use Cookie;
|
||||
use body::Body;
|
||||
use error::Error;
|
||||
use route::{Reply, FromRequest};
|
||||
use encoding::ContentEncoding;
|
||||
use httprequest::HttpRequest;
|
||||
|
||||
/// Represents various types of connection
|
||||
#[derive(Copy, Clone, PartialEq, Debug)]
|
||||
|
@ -458,6 +460,12 @@ impl From<HttpResponseBuilder> for HttpResponse {
|
|||
}
|
||||
}
|
||||
|
||||
impl FromRequest for HttpResponseBuilder {
|
||||
fn from_request(self, _: HttpRequest) -> Reply {
|
||||
Reply::response(self)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&'static str> for HttpResponse {
|
||||
fn from(val: &'static str) -> Self {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
|
@ -467,6 +475,15 @@ impl From<&'static str> for HttpResponse {
|
|||
}
|
||||
}
|
||||
|
||||
impl FromRequest for &'static str {
|
||||
fn from_request(self, req: HttpRequest) -> Reply {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
.content_type("text/plain; charset=utf-8")
|
||||
.body(self)
|
||||
.from_request(req)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&'static [u8]> for HttpResponse {
|
||||
fn from(val: &'static [u8]) -> Self {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
|
@ -476,6 +493,15 @@ impl From<&'static [u8]> for HttpResponse {
|
|||
}
|
||||
}
|
||||
|
||||
impl FromRequest for &'static [u8] {
|
||||
fn from_request(self, req: HttpRequest) -> Reply {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
.content_type("application/octet-stream")
|
||||
.body(self)
|
||||
.from_request(req)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<String> for HttpResponse {
|
||||
fn from(val: String) -> Self {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
|
@ -485,6 +511,15 @@ impl From<String> for HttpResponse {
|
|||
}
|
||||
}
|
||||
|
||||
impl FromRequest for String {
|
||||
fn from_request(self, req: HttpRequest) -> Reply {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
.content_type("text/plain; charset=utf-8")
|
||||
.body(self)
|
||||
.from_request(req)
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> From<&'a String> for HttpResponse {
|
||||
fn from(val: &'a String) -> Self {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
|
@ -494,6 +529,15 @@ impl<'a> From<&'a String> for HttpResponse {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a> FromRequest for &'a String {
|
||||
fn from_request(self, req: HttpRequest) -> Reply {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
.content_type("text/plain; charset=utf-8")
|
||||
.body(self)
|
||||
.from_request(req)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Bytes> for HttpResponse {
|
||||
fn from(val: Bytes) -> Self {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
|
@ -503,6 +547,15 @@ impl From<Bytes> for HttpResponse {
|
|||
}
|
||||
}
|
||||
|
||||
impl FromRequest for Bytes {
|
||||
fn from_request(self, req: HttpRequest) -> Reply {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
.content_type("application/octet-stream")
|
||||
.body(self)
|
||||
.from_request(req)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<BytesMut> for HttpResponse {
|
||||
fn from(val: BytesMut) -> Self {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
|
@ -512,6 +565,15 @@ impl From<BytesMut> for HttpResponse {
|
|||
}
|
||||
}
|
||||
|
||||
impl FromRequest for BytesMut {
|
||||
fn from_request(self, req: HttpRequest) -> Reply {
|
||||
HttpResponse::build(StatusCode::OK)
|
||||
.content_type("application/octet-stream")
|
||||
.body(self)
|
||||
.from_request(req)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
|
|
@ -92,10 +92,10 @@ default impl<T: FromRequest> FromRequest for T
|
|||
}
|
||||
|
||||
#[cfg(actix_nightly)]
|
||||
default impl<T: FromRequest, E: Into<Error>> FromRequest for StdResult<T, E> {
|
||||
default impl<T: Into<HttpResponse>, E: Into<Error>> FromRequest for StdResult<T, E> {
|
||||
fn from_request(self, req: HttpRequest) -> Reply {
|
||||
match self {
|
||||
Ok(val) => val.from_request(req),
|
||||
Ok(val) => Reply(ReplyItem::Message(val.into())), //val.from_request(req),
|
||||
Err(err) => Reply(ReplyItem::Message(err.into().into())),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue