mirror of
https://github.com/actix/actix-web.git
synced 2024-11-27 03:51:10 +00:00
Change service response to Into<Response>
This commit is contained in:
parent
ed7ca7fe07
commit
f3ed1b601e
4 changed files with 41 additions and 22 deletions
|
@ -85,8 +85,9 @@ impl<S: Service, B: MessageBody> State<S, B> {
|
|||
impl<T, S, B> Dispatcher<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: Service<Request = Request, Response = Response<B>>,
|
||||
S: Service<Request = Request>,
|
||||
S::Error: Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody,
|
||||
{
|
||||
/// Create http/1 dispatcher.
|
||||
|
@ -139,8 +140,9 @@ where
|
|||
impl<T, S, B> InnerDispatcher<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: Service<Request = Request, Response = Response<B>>,
|
||||
S: Service<Request = Request>,
|
||||
S::Error: Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody,
|
||||
{
|
||||
fn can_read(&self) -> bool {
|
||||
|
@ -224,7 +226,7 @@ where
|
|||
State::ServiceCall(mut fut) => {
|
||||
match fut.poll().map_err(DispatchError::Service)? {
|
||||
Async::Ready(res) => {
|
||||
let (res, body) = res.replace_body(());
|
||||
let (res, body) = res.into().replace_body(());
|
||||
Some(self.send_response(res, body)?)
|
||||
}
|
||||
Async::NotReady => {
|
||||
|
@ -287,7 +289,7 @@ where
|
|||
let mut task = self.service.call(req);
|
||||
match task.poll().map_err(DispatchError::Service)? {
|
||||
Async::Ready(res) => {
|
||||
let (res, body) = res.replace_body(());
|
||||
let (res, body) = res.into().replace_body(());
|
||||
self.send_response(res, body)
|
||||
}
|
||||
Async::NotReady => Ok(State::ServiceCall(task)),
|
||||
|
@ -459,8 +461,9 @@ where
|
|||
impl<T, S, B> Future for Dispatcher<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: Service<Request = Request, Response = Response<B>>,
|
||||
S: Service<Request = Request>,
|
||||
S::Error: Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody,
|
||||
{
|
||||
type Item = H1ServiceResult<T>;
|
||||
|
|
|
@ -28,9 +28,10 @@ pub struct H1Service<T, S, B> {
|
|||
|
||||
impl<T, S, B> H1Service<T, S, B>
|
||||
where
|
||||
S: NewService<Request = Request<Payload>, Response = Response<B>> + Clone,
|
||||
S: NewService<Request = Request<Payload>> + Clone,
|
||||
S::Service: Clone,
|
||||
S::Error: Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody,
|
||||
{
|
||||
/// Create new `HttpService` instance.
|
||||
|
@ -53,9 +54,10 @@ where
|
|||
impl<T, S, B> NewService for H1Service<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: NewService<Request = Request, Response = Response<B>> + Clone,
|
||||
S: NewService<Request = Request> + Clone,
|
||||
S::Service: Clone,
|
||||
S::Error: Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody,
|
||||
{
|
||||
type Request = T;
|
||||
|
@ -214,9 +216,10 @@ pub struct H1ServiceResponse<T, S: NewService, B> {
|
|||
impl<T, S, B> Future for H1ServiceResponse<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: NewService<Request = Request, Response = Response<B>>,
|
||||
S: NewService<Request = Request>,
|
||||
S::Service: Clone,
|
||||
S::Error: Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody,
|
||||
{
|
||||
type Item = H1ServiceHandler<T, S::Service, B>;
|
||||
|
@ -240,8 +243,9 @@ pub struct H1ServiceHandler<T, S, B> {
|
|||
|
||||
impl<T, S, B> H1ServiceHandler<T, S, B>
|
||||
where
|
||||
S: Service<Request = Request, Response = Response<B>> + Clone,
|
||||
S: Service<Request = Request> + Clone,
|
||||
S::Error: Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody,
|
||||
{
|
||||
fn new(cfg: ServiceConfig, srv: S) -> H1ServiceHandler<T, S, B> {
|
||||
|
@ -256,8 +260,9 @@ where
|
|||
impl<T, S, B> Service for H1ServiceHandler<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: Service<Request = Request, Response = Response<B>> + Clone,
|
||||
S: Service<Request = Request> + Clone,
|
||||
S::Error: Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody,
|
||||
{
|
||||
type Request = T;
|
||||
|
|
|
@ -50,8 +50,9 @@ pub struct Dispatcher<T: AsyncRead + AsyncWrite, S: Service, B: MessageBody> {
|
|||
impl<T, S, B> Dispatcher<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: Service<Request = Request<Payload>, Response = Response<B>> + 'static,
|
||||
S: Service<Request = Request<Payload>> + 'static,
|
||||
S::Error: Into<Error> + fmt::Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
pub fn new(
|
||||
|
@ -91,8 +92,9 @@ where
|
|||
impl<T, S, B> Future for Dispatcher<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: Service<Request = Request<Payload>, Response = Response<B>> + 'static,
|
||||
S: Service<Request = Request<Payload>> + 'static,
|
||||
S::Error: Into<Error> + fmt::Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
type Item = ();
|
||||
|
@ -149,8 +151,9 @@ enum ServiceResponseState<S: Service, B> {
|
|||
|
||||
impl<S, B> ServiceResponse<S, B>
|
||||
where
|
||||
S: Service<Request = Request<Payload>, Response = Response<B>> + 'static,
|
||||
S: Service<Request = Request<Payload>> + 'static,
|
||||
S::Error: Into<Error> + fmt::Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
fn prepare_response(
|
||||
|
@ -216,8 +219,9 @@ where
|
|||
|
||||
impl<S, B> Future for ServiceResponse<S, B>
|
||||
where
|
||||
S: Service<Request = Request<Payload>, Response = Response<B>> + 'static,
|
||||
S: Service<Request = Request<Payload>> + 'static,
|
||||
S::Error: Into<Error> + fmt::Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
type Item = ();
|
||||
|
@ -228,7 +232,7 @@ where
|
|||
ServiceResponseState::ServiceCall(ref mut call, ref mut send) => {
|
||||
match call.poll() {
|
||||
Ok(Async::Ready(res)) => {
|
||||
let (res, body) = res.replace_body(());
|
||||
let (res, body) = res.into().replace_body(());
|
||||
|
||||
let mut send = send.take().unwrap();
|
||||
let mut length = body.length();
|
||||
|
|
|
@ -30,9 +30,10 @@ pub struct H2Service<T, S, B> {
|
|||
|
||||
impl<T, S, B> H2Service<T, S, B>
|
||||
where
|
||||
S: NewService<Request = Request<Payload>, Response = Response<B>> + Clone,
|
||||
S: NewService<Request = Request<Payload>> + Clone,
|
||||
S::Service: Clone + 'static,
|
||||
S::Error: Into<Error> + Debug + 'static,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
/// Create new `HttpService` instance.
|
||||
|
@ -55,9 +56,10 @@ where
|
|||
impl<T, S, B> NewService for H2Service<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: NewService<Request = Request<Payload>, Response = Response<B>> + Clone,
|
||||
S: NewService<Request = Request<Payload>> + Clone,
|
||||
S::Service: Clone + 'static,
|
||||
S::Error: Into<Error> + Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
type Request = T;
|
||||
|
@ -235,8 +237,9 @@ pub struct H2ServiceResponse<T, S: NewService, B> {
|
|||
impl<T, S, B> Future for H2ServiceResponse<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: NewService<Request = Request<Payload>, Response = Response<B>>,
|
||||
S: NewService<Request = Request<Payload>>,
|
||||
S::Service: Clone + 'static,
|
||||
S::Response: Into<Response<B>>,
|
||||
S::Error: Into<Error> + Debug,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
|
@ -261,8 +264,9 @@ pub struct H2ServiceHandler<T, S, B> {
|
|||
|
||||
impl<T, S, B> H2ServiceHandler<T, S, B>
|
||||
where
|
||||
S: Service<Request = Request<Payload>, Response = Response<B>> + Clone + 'static,
|
||||
S: Service<Request = Request<Payload>> + Clone + 'static,
|
||||
S::Error: Into<Error> + Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
fn new(cfg: ServiceConfig, srv: S) -> H2ServiceHandler<T, S, B> {
|
||||
|
@ -277,8 +281,9 @@ where
|
|||
impl<T, S, B> Service for H2ServiceHandler<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: Service<Request = Request<Payload>, Response = Response<B>> + Clone + 'static,
|
||||
S: Service<Request = Request<Payload>> + Clone + 'static,
|
||||
S::Error: Into<Error> + Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
type Request = T;
|
||||
|
@ -312,8 +317,9 @@ enum State<T: AsyncRead + AsyncWrite, S: Service, B: MessageBody> {
|
|||
pub struct H2ServiceHandlerResponse<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: Service<Request = Request<Payload>, Response = Response<B>> + Clone + 'static,
|
||||
S: Service<Request = Request<Payload>> + Clone + 'static,
|
||||
S::Error: Into<Error> + Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody + 'static,
|
||||
{
|
||||
state: State<T, S, B>,
|
||||
|
@ -322,8 +328,9 @@ where
|
|||
impl<T, S, B> Future for H2ServiceHandlerResponse<T, S, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite,
|
||||
S: Service<Request = Request<Payload>, Response = Response<B>> + Clone,
|
||||
S: Service<Request = Request<Payload>> + Clone,
|
||||
S::Error: Into<Error> + Debug,
|
||||
S::Response: Into<Response<B>>,
|
||||
B: MessageBody,
|
||||
{
|
||||
type Item = ();
|
||||
|
|
Loading…
Reference in a new issue