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