• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

benches/H03-May-2022-1511

src/H03-May-2022-586283

.cargo-checksum.jsonH A D03-May-202289 11

.cargo_vcs_info.jsonH A D01-Jan-197074 65

.gitignoreH A D15-Mar-201831 53

Cargo.tomlH A D01-Jan-19701 KiB3329

Cargo.toml.orig-cargoH A D20-Aug-2019480 1916

LICENSEH A D19-Mar-20191 KiB2116

README.mdH A D19-Mar-2019929 2517

README.md

1# Want
2
3- [Crates.io](https://crates.io/crates/want)
4- [Docs](https://docs.rs/want)
5
6A `Future`s channel-like utility to signal when a value is wanted.
7
8Futures are supposed to be lazy, and only starting work if `Future::poll`
9is called. The same is true of `Stream`s, but when using a channel as
10a `Stream`, it can be hard to know if the receiver is ready for the next
11value.
12
13Put another way, given a `(tx, rx)` from `futures::sync::mpsc::channel()`,
14how can the sender (`tx`) know when the receiver (`rx`) actually wants more
15work to be produced? Just because there is room in the channel buffer
16doesn't mean the work would be used by the receiver.
17
18This is where something like `want` comes in. Added to a channel, you can
19make sure that the `tx` only creates the message and sends it when the `rx`
20has `poll()` for it, and the buffer was empty.
21
22## License
23
24`want` is provided under the MIT license. See [LICENSE](LICENSE).
25