roa-tcp 0.5.0-rc

tcp based acceptor for roa
Documentation
[![Stable Test](https://github.com/Hexilee/roa/workflows/Stable%20Test/badge.svg)](https://github.com/Hexilee/roa/actions)
[![codecov](https://codecov.io/gh/Hexilee/roa/branch/master/graph/badge.svg)](https://codecov.io/gh/Hexilee/roa)
[![Rust Docs](https://docs.rs/roa-tcp/badge.svg)](https://docs.rs/roa-tcp)
[![Crate version](https://img.shields.io/crates/v/roa-tcp.svg)](https://crates.io/crates/roa-tcp)
[![Download](https://img.shields.io/crates/d/roa-tcp.svg)](https://crates.io/crates/roa-tcp)
[![Version](https://img.shields.io/badge/rustc-1.40+-lightgray.svg)](https://blog.rust-lang.org/2019/12/19/Rust-1.40.0.html)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/Hexilee/roa/blob/master/LICENSE)

## Roa-tcp

This crate provides an acceptor implementing `roa_core::Accept` and an app extension.

### TcpIncoming

```
use roa_core::App;
use roa_tcp::TcpIncoming;
use std::io;

# fn main() -> io::Result<()> {
let app = App::new(());
let incoming = TcpIncoming::bind("127.0.0.1:0")?;
let server = app.accept(incoming);
// server.await
Ok(())
# }
```

### Listener

```
use roa_core::App;
use roa_tcp::Listener;
use std::io;

# fn main() -> io::Result<()> {
let app = App::new(());
let (addr, server) = app.listen_on("127.0.0.1:0")?;
// server.await
Ok(())
# }
```