License Crates.io Docs

derive-tokio-io

Derive [AsyncRead] and [AsyncWrite].

Usage

If the struct has only one field, [AsyncRead] and [AsyncWrite] are derived for that field.

```rust use derivetokioio::{AsyncRead, AsyncWrite}; use tokio::net::TcpStream;

[derive(AsyncRead, AsyncWrite)]

struct Wrapper { stream: TcpStream, } ```

Generics are supported.

```rust use derivetokioio::{AsyncRead, AsyncWrite};

[derive(AsyncRead, AsyncWrite)]

struct Wrapper { stream: IO, } ```

If the struct has multiple fields, #[async_read] and #[async_write] must be used once for any field.

```rust use derivetokioio::{AsyncRead, AsyncWrite};

[derive(AsyncRead, AsyncWrite)]

struct Wrapper { #[asyncread] reader: R, #[asyncwrite] writer: W, } ```

Everything works the same way for tuple structs.

```rust use derivetokioio::{AsyncRead, AsyncWrite};

[derive(AsyncRead, AsyncWrite)]

struct Wrapper( #[asyncread] R, #[asyncwrite] W, ); ```

License

This project is licensed under the MIT license.