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

..--

benches/25-Apr-2025-1511

src/25-Apr-2025-580278

.cargo-checksum.jsonD25-Apr-2025495 11

Android.bpD25-Apr-2025851 3329

Cargo.tomlD25-Apr-2025982 3631

LICENSED25-Apr-20251 KiB2116

METADATAD25-Apr-2025366 1817

MODULE_LICENSE_MITD25-Apr-20250

README.mdD25-Apr-2025929 2517

cargo_embargo.jsonD25-Apr-202552 54

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