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]
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",
]

View File

@ -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:

View File

@ -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 <team@tower-rs.com>"]
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"

View File

@ -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<http::Request> for HelloWorld {
/// type Response = http::Response;
/// 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(()))
/// }
///
@ -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<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> {
/// self.inner.poll_ready().map_err(Into::into)
/// fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
/// self.inner.poll_ready(cx).map_err(Into::into)
/// }
///
/// fn call(&mut self, req: Request) -> Self::Future {
@ -182,7 +182,7 @@ pub trait Service<Request> {
type Error;
/// 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.
///
@ -196,7 +196,7 @@ pub trait Service<Request> {
/// 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<Result<(), Self::Error>>;
/// 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<Result<(), S::Error>> {
(**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<Result<(), S::Error>> {
(**self).poll_ready(cx)
}
fn call(&mut self, request: Request) -> S::Future {