Update `tower-service` to `std::future::Future` (#311)

This commit is contained in:
Lucio Franco 2019-08-20 14:31:09 -04:00 committed by GitHub
parent b7faef31e9
commit fe9cef6006
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 50 additions and 51 deletions

View File

@ -1,21 +1,21 @@
[workspace] [workspace]
members = [ members = [
"tower", # "tower",
"tower-balance", # "tower-balance",
"tower-buffer", # "tower-buffer",
"tower-discover", # "tower-discover",
"tower-filter", # "tower-filter",
"tower-hedge", # "tower-hedge",
"tower-layer", # "tower-layer",
"tower-limit", # "tower-limit",
"tower-load", # "tower-load",
"tower-load-shed", # "tower-load-shed",
"tower-reconnect", # "tower-reconnect",
"tower-retry", # "tower-retry",
"tower-service", "tower-service",
"tower-spawn-ready", # "tower-spawn-ready",
"tower-test", # "tower-test",
"tower-timeout", # "tower-timeout",
"tower-util", # "tower-util",
] ]

View File

@ -13,23 +13,23 @@ jobs:
displayName: Test displayName: Test
vmImage: ubuntu-16.04 vmImage: ubuntu-16.04
crates: crates:
- tower-balance # - tower-balance
- tower-buffer # - tower-buffer
- tower-discover # - tower-discover
- tower-filter # - tower-filter
- tower-hedge # - tower-hedge
- tower-layer # - tower-layer
- tower-limit # - tower-limit
- tower-load # - tower-load
- tower-load-shed # - tower-load-shed
- tower-reconnect # - tower-reconnect
- tower-retry # - tower-retry
- tower-service - tower-service
- tower-spawn-ready # - tower-spawn-ready
- tower-test # - tower-test
- tower-timeout # - tower-timeout
- tower-util # - tower-util
- tower # - tower
- template: ci/azure-deploy-docs.yml - template: ci/azure-deploy-docs.yml
parameters: parameters:

View File

@ -9,17 +9,16 @@ name = "tower-service"
# - README.md # - README.md
# - Update CHANGELOG.md. # - Update CHANGELOG.md.
# - Create "v0.2.x" git tag. # - Create "v0.2.x" git tag.
version = "0.2.0" version = "0.3.0-alpha.1"
authors = ["Tower Maintainers <team@tower-rs.com>"] authors = ["Tower Maintainers <team@tower-rs.com>"]
license = "MIT" license = "MIT"
readme = "README.md" readme = "README.md"
repository = "https://github.com/tower-rs/tower" repository = "https://github.com/tower-rs/tower"
homepage = "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 = """ description = """
Trait representing an asynchronous, request / response based, client or server. Trait representing an asynchronous, request / response based, client or server.
""" """
categories = ["asynchronous", "network-programming"] categories = ["asynchronous", "network-programming"]
[dependencies] [dependencies]
futures = "0.1.23"

View File

@ -1,5 +1,5 @@
#![deny(missing_docs)] #![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 //! Definition of the core `Service` trait to Tower
//! //!
@ -7,9 +7,8 @@
//! request / response clients and servers. It is simple but powerful and is //! request / response clients and servers. It is simple but powerful and is
//! used as the foundation for the rest of Tower. //! used as the foundation for the rest of Tower.
extern crate futures; use std::future::Future;
use std::task::{Context, Poll};
use futures::{Future, Poll};
/// An asynchronous function from a `Request` to a `Response`. /// An asynchronous function from a `Request` to a `Response`.
/// ///
@ -41,9 +40,9 @@ use futures::{Future, Poll};
/// impl Service<http::Request> for HelloWorld { /// impl Service<http::Request> for HelloWorld {
/// type Response = http::Response; /// type Response = http::Response;
/// type Error = http::Error; /// type Error = http::Error;
/// type Future = Box<Future<Item = Self::Response, Error = Self::Error>>; /// type Future = Box<Future<Output = Result<Self::Response, Self::Error>>>;
/// ///
/// fn poll_ready(&mut self) -> Poll<(), Self::Error> { /// fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<(), Self::Error> {
/// Ok(Async::Ready(())) /// Ok(Async::Ready(()))
/// } /// }
/// ///
@ -90,7 +89,8 @@ use futures::{Future, Poll};
/// ```rust,ignore /// ```rust,ignore
/// use tower_service::Service; /// use tower_service::Service;
/// use tower_layer::Layer; /// use tower_layer::Layer;
/// use futures::Future; /// use std::future::Future;
/// use std::task::{Context, Poll};
/// use std::time::Duration; /// use std::time::Duration;
/// ///
/// ///
@ -122,10 +122,10 @@ use futures::{Future, Poll};
/// { /// {
/// type Response = T::Response; /// type Response = T::Response;
/// type Error = T::Error; /// type Error = T::Error;
/// type Future = Box<Future<Item = Self::Response, Error = Self::Error>>; /// type Future = Box<Future<Output = Result<Self::Response, Self::Error>>>;
/// ///
/// fn poll_ready(&mut self) -> Poll<(), Self::Error> { /// fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
/// self.inner.poll_ready().map_err(Into::into) /// self.inner.poll_ready(cx).map_err(Into::into)
/// } /// }
/// ///
/// fn call(&mut self, req: Request) -> Self::Future { /// fn call(&mut self, req: Request) -> Self::Future {
@ -182,7 +182,7 @@ pub trait Service<Request> {
type Error; type Error;
/// The future response value. /// The future response value.
type Future: Future<Item = Self::Response, Error = Self::Error>; type Future: Future<Output = Result<Self::Response, Self::Error>>;
/// Returns `Ready` when the service is able to process requests. /// Returns `Ready` when the service is able to process requests.
/// ///
@ -196,7 +196,7 @@ pub trait Service<Request> {
/// Once `poll_ready` returns `Ready`, a request may be dispatched to the /// Once `poll_ready` returns `Ready`, a request may be dispatched to the
/// service using `call`. Until a request is dispatched, repeated calls to /// service using `call`. Until a request is dispatched, repeated calls to
/// `poll_ready` must return either `Ready` or `Err`. /// `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<Result<(), Self::Error>>;
/// Process the request and return the response asynchronously. /// Process the request and return the response asynchronously.
/// ///
@ -221,8 +221,8 @@ where
type Error = S::Error; type Error = S::Error;
type Future = S::Future; type Future = S::Future;
fn poll_ready(&mut self) -> Poll<(), S::Error> { fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), S::Error>> {
(**self).poll_ready() (**self).poll_ready(cx)
} }
fn call(&mut self, request: Request) -> S::Future { fn call(&mut self, request: Request) -> S::Future {
@ -238,8 +238,8 @@ where
type Error = S::Error; type Error = S::Error;
type Future = S::Future; type Future = S::Future;
fn poll_ready(&mut self) -> Poll<(), S::Error> { fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), S::Error>> {
(**self).poll_ready() (**self).poll_ready(cx)
} }
fn call(&mut self, request: Request) -> S::Future { fn call(&mut self, request: Request) -> S::Future {