From fe9cef60065827e723c83e378560650bec4ed342 Mon Sep 17 00:00:00 2001 From: Lucio Franco Date: Tue, 20 Aug 2019 14:31:09 -0400 Subject: [PATCH] Update `tower-service` to `std::future::Future` (#311) --- Cargo.toml | 32 ++++++++++++++++---------------- azure-pipelines.yml | 32 ++++++++++++++++---------------- tower-service/Cargo.toml | 5 ++--- tower-service/src/lib.rs | 32 ++++++++++++++++---------------- 4 files changed, 50 insertions(+), 51 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 9b63ae3..72f4421 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,21 +1,21 @@ [workspace] members = [ - "tower", - "tower-balance", - "tower-buffer", - "tower-discover", - "tower-filter", - "tower-hedge", - "tower-layer", - "tower-limit", - "tower-load", - "tower-load-shed", - "tower-reconnect", - "tower-retry", + # "tower", + # "tower-balance", + # "tower-buffer", + # "tower-discover", + # "tower-filter", + # "tower-hedge", + # "tower-layer", + # "tower-limit", + # "tower-load", + # "tower-load-shed", + # "tower-reconnect", + # "tower-retry", "tower-service", - "tower-spawn-ready", - "tower-test", - "tower-timeout", - "tower-util", + # "tower-spawn-ready", + # "tower-test", + # "tower-timeout", + # "tower-util", ] diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 562a734..d84f198 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,23 +13,23 @@ jobs: displayName: Test vmImage: ubuntu-16.04 crates: - - tower-balance - - tower-buffer - - tower-discover - - tower-filter - - tower-hedge - - tower-layer - - tower-limit - - tower-load - - tower-load-shed - - tower-reconnect - - tower-retry + # - tower-balance + # - tower-buffer + # - tower-discover + # - tower-filter + # - tower-hedge + # - tower-layer + # - tower-limit + # - tower-load + # - tower-load-shed + # - tower-reconnect + # - tower-retry - tower-service - - tower-spawn-ready - - tower-test - - tower-timeout - - tower-util - - tower + # - tower-spawn-ready + # - tower-test + # - tower-timeout + # - tower-util + # - tower - template: ci/azure-deploy-docs.yml parameters: diff --git a/tower-service/Cargo.toml b/tower-service/Cargo.toml index be128c4..e026e0f 100644 --- a/tower-service/Cargo.toml +++ b/tower-service/Cargo.toml @@ -9,17 +9,16 @@ name = "tower-service" # - README.md # - Update CHANGELOG.md. # - Create "v0.2.x" git tag. -version = "0.2.0" +version = "0.3.0-alpha.1" authors = ["Tower Maintainers "] license = "MIT" readme = "README.md" repository = "https://github.com/tower-rs/tower" homepage = "https://github.com/tower-rs/tower" -documentation = "https://docs.rs/tower-service/0.2.0" +documentation = "https://docs.rs/tower-service/0.3.0-alpha.1" description = """ Trait representing an asynchronous, request / response based, client or server. """ categories = ["asynchronous", "network-programming"] [dependencies] -futures = "0.1.23" diff --git a/tower-service/src/lib.rs b/tower-service/src/lib.rs index 0a6b5f6..911f187 100644 --- a/tower-service/src/lib.rs +++ b/tower-service/src/lib.rs @@ -1,5 +1,5 @@ #![deny(missing_docs)] -#![doc(html_root_url = "https://docs.rs/tower-service/0.2.0")] +#![doc(html_root_url = "https://docs.rs/tower-service/0.3.0-alpha.1")] //! Definition of the core `Service` trait to Tower //! @@ -7,9 +7,8 @@ //! request / response clients and servers. It is simple but powerful and is //! used as the foundation for the rest of Tower. -extern crate futures; - -use futures::{Future, Poll}; +use std::future::Future; +use std::task::{Context, Poll}; /// An asynchronous function from a `Request` to a `Response`. /// @@ -41,9 +40,9 @@ use futures::{Future, Poll}; /// impl Service for HelloWorld { /// type Response = http::Response; /// type Error = http::Error; -/// type Future = Box>; +/// type Future = Box>>; /// -/// fn poll_ready(&mut self) -> Poll<(), Self::Error> { +/// fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<(), Self::Error> { /// Ok(Async::Ready(())) /// } /// @@ -90,7 +89,8 @@ use futures::{Future, Poll}; /// ```rust,ignore /// use tower_service::Service; /// use tower_layer::Layer; -/// use futures::Future; +/// use std::future::Future; +/// use std::task::{Context, Poll}; /// use std::time::Duration; /// /// @@ -122,10 +122,10 @@ use futures::{Future, Poll}; /// { /// type Response = T::Response; /// type Error = T::Error; -/// type Future = Box>; +/// type Future = Box>>; /// -/// fn poll_ready(&mut self) -> Poll<(), Self::Error> { -/// self.inner.poll_ready().map_err(Into::into) +/// fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { +/// self.inner.poll_ready(cx).map_err(Into::into) /// } /// /// fn call(&mut self, req: Request) -> Self::Future { @@ -182,7 +182,7 @@ pub trait Service { type Error; /// The future response value. - type Future: Future; + type Future: Future>; /// Returns `Ready` when the service is able to process requests. /// @@ -196,7 +196,7 @@ pub trait Service { /// Once `poll_ready` returns `Ready`, a request may be dispatched to the /// service using `call`. Until a request is dispatched, repeated calls to /// `poll_ready` must return either `Ready` or `Err`. - fn poll_ready(&mut self) -> Poll<(), Self::Error>; + fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll>; /// Process the request and return the response asynchronously. /// @@ -221,8 +221,8 @@ where type Error = S::Error; type Future = S::Future; - fn poll_ready(&mut self) -> Poll<(), S::Error> { - (**self).poll_ready() + fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { + (**self).poll_ready(cx) } fn call(&mut self, request: Request) -> S::Future { @@ -238,8 +238,8 @@ where type Error = S::Error; type Future = S::Future; - fn poll_ready(&mut self) -> Poll<(), S::Error> { - (**self).poll_ready() + fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { + (**self).poll_ready(cx) } fn call(&mut self, request: Request) -> S::Future {