4 stable releases

1.1.0 Mar 7, 2019
1.0.2 Mar 7, 2019

#5 in #readiness

MIT/Apache

14KB
68 lines

ready

crates.io version build status downloads docs.rs docs

Async readiness traits. Useful when implementing async state machines that can later be wrapped in dedicated futures.

Examples

Basic usage

#![feature(futures_api)]

use std::pin::Pin;
use std::task::{Poll, Waker};
use futures::prelude::*;
use std::io;

struct Fut;

impl Future for Fut {
  type Output = ();
  fn poll(self: Pin<&mut Self>, waker: &Waker) -> Poll<Self::Output> {
    Poll::Ready(())
  }
}

impl ready::Ready for Fut {
  type Ok = ();
  type Err = io::Error;
  fn poll_ready(&self, waker: &Waker)
    -> Poll<Result<Self::Ok, Self::Err>> {
    Poll::Ready(Ok(()))
  }
}

Installation

$ cargo add ready

Safety

This crate uses #![deny(unsafe_code)] to ensure everything is implemented in 100% Safe Rust.

Contributing

Want to join us? Check out our "Contributing" guide and take a look at some of these issues:

References

None.

License

MIT OR Apache-2.0

No runtime deps