Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
benches/ | 25-Apr-2025 | - | 15 | 11 | ||
src/ | 25-Apr-2025 | - | 580 | 278 | ||
.cargo-checksum.json | D | 25-Apr-2025 | 495 | 1 | 1 | |
Android.bp | D | 25-Apr-2025 | 851 | 33 | 29 | |
Cargo.toml | D | 25-Apr-2025 | 982 | 36 | 31 | |
LICENSE | D | 25-Apr-2025 | 1 KiB | 21 | 16 | |
METADATA | D | 25-Apr-2025 | 366 | 18 | 17 | |
MODULE_LICENSE_MIT | D | 25-Apr-2025 | 0 | |||
README.md | D | 25-Apr-2025 | 929 | 25 | 17 | |
cargo_embargo.json | D | 25-Apr-2025 | 52 | 5 | 4 |
README.md
1 # Want 2 3 - [Crates.io](https://crates.io/crates/want) 4 - [Docs](https://docs.rs/want) 5 6 A `Future`s channel-like utility to signal when a value is wanted. 7 8 Futures are supposed to be lazy, and only starting work if `Future::poll` 9 is called. The same is true of `Stream`s, but when using a channel as 10 a `Stream`, it can be hard to know if the receiver is ready for the next 11 value. 12 13 Put another way, given a `(tx, rx)` from `futures::sync::mpsc::channel()`, 14 how can the sender (`tx`) know when the receiver (`rx`) actually wants more 15 work to be produced? Just because there is room in the channel buffer 16 doesn't mean the work would be used by the receiver. 17 18 This is where something like `want` comes in. Added to a channel, you can 19 make sure that the `tx` only creates the message and sends it when the `rx` 20 has `poll()` for it, and the buffer was empty. 21 22 ## License 23 24 `want` is provided under the MIT license. See [LICENSE](LICENSE). 25