• Home
Name Date Size #Lines LOC

..--

benches/06-Sep-2024-1511

src/06-Sep-2024-580278

Android.bpD06-Sep-2024903 3329

Cargo.tomlD06-Sep-2024982 3631

Cargo.toml.origD06-Sep-2024470 1815

LICENSED06-Sep-20241 KiB2116

METADATAD06-Sep-2024385 2120

MODULE_LICENSE_MITD06-Sep-20240

OWNERSD06-Sep-202469 32

README.mdD06-Sep-2024929 2517

cargo_embargo.jsonD06-Sep-202425 43

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