async-shared-timeout 0.2.2

Async timeout that can be reset and shared
Documentation
[![crates.io](https://img.shields.io/crates/v/async-shared-timeout.svg)](https://crates.io/crates/async-shared-timeout) [![docs.rs](https://docs.rs/async-shared-timeout/badge.svg)](https://docs.rs/async-shared-timeout)

# Async Shared Timeout

A Rust crate for creating a shared timeout. A sample use case is having multiple streams open from the client, and expiring them only when all of them stopped sending data. Another example is a proxy with a timeout - the proxy times out only when both the local and the remote ends time out.

# Feature flags:
 
**Wrapper**

- `wrapper` - enable a wrapper around types that you can use for easier resetting. By default,
              only future support is enabled (reset the timer upon future completion).
- `read-write` - enable async `Read`/`Write` trait support for the wrapper (reset the timer
                 upon successful read/write operations)
- `stream` - enable `Stream` support for the wrapper (reset the timer upon stream advancement).

**Integration with other runtimes**

- `std` (enabled by default) - enable `std` integration. Currently it's only used to enable
                               `Arc` and `AsRawFd` support for the wrapper.
- `tokio` (enabled by default) - [`tokio`]https://docs.rs/tokio support
- `async-io` - support [`async-io`]https://docs.rs/async-io as the timer runtime.
- `futures-io` - support [`futures-io`]https://docs.rs/futures-io traits.
- `async-std` - [`async-std`]https://docs.rs/async-std support (enables `async-io` and `futures-io`).

## Changelog

- 0.1.0 - initial release
- 0.1.1 - `AsRawFd` support for `Wrapper`
- 0.2.0 - minor API cleanup
- 0.2.1 - updated dependencies, added `Timeout::new_tokio`
- 0.2.2 - add `TokioTimeout` and `TokioWrapper` type aliases

## License

TL;DR do whatever you want.

Licensed under either the [BSD Zero Clause License](LICENSE-0BSD) (https://opensource.org/licenses/0BSD), the [Apache 2.0 License](LICENSE-APACHE) (http://www.apache.org/licenses/LICENSE-2.0) or the [MIT License](LICENSE-MIT) (http://opensource.org/licenses/MIT), at your choice.