futures-test-sink
This crate provide a handy mock sink implementations that can be used test own Sink.
Examples
use from_iter;
use waker_fn;
use Sink;
use ;
// create a Context
let wake_cnt = new;
let cnt = wake_cnt.clone;
let waker = waker_fn;
let mut cx = from_waker;
// actual test
let poll_fallback = vec!
.into_iter;
let start_send_fallback = vec!.into_iter.cycle;
// ours sink implementation
let mut s = from_iter;
let r1 = new.poll_ready;
assert_eq!;
let s1 = new.start_send;
assert_eq!;
let r2 = new.poll_ready;
assert_eq!;
// start send don't panic because start_send_fallback is cycle
let s2 = new.start_send;
assert_eq!;
// ctx.wake() wasn't called.
assert_eq!;
let r3 = new.poll_ready;
assert_eq!;
assert_eq!;
let r4 = new.poll_ready;
assert_eq!;
assert_eq!;
You can be interested in [FuseLast] container for Iterator.
use ;
use waker_fn;
use Sink;
use ;
// create a Context
let wake_cnt = new;
let cnt = wake_cnt.clone;
let waker = waker_fn;
let mut cx = from_waker;
// actual test
let poll_fallback = vec!
.into_iter.fuse_last;
let start_send_fallback = vec!.into_iter.cycle;
// ours sink implementation
let mut s = from_iter;
let r1 = new.poll_ready;
assert_eq!;
let s1 = new.start_send;
assert_eq!;
let r2 = new.poll_ready;
assert_eq!;
let r3 = new.poll_ready;
assert_eq!;
// if not `fuse_last` this would panic!
let r4 = new.poll_ready;
assert_eq!;
let r5 = new.poll_ready;
assert_eq!;
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
This project try follow rules:
This README was generated with cargo-readme from template