1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Managed async reads that return runtime pool buffers.
use crateIoBuf;
use io;
/// Asynchronously reads into a runtime-provided buffer.
///
/// Unlike [`crate::io::AsyncRead`], the application does not supply a buffer.
/// The implementation selects one from the runtime pool and returns a lease
/// (`PooledBuf` on Linux).
///
/// # Buffer ownership
///
/// Returned buffers are **leases**. Drop or explicitly release them promptly so
/// the pool can reuse slots. Holding many leases without recycling can exhaust
/// the pool and cause later receives to fail with `ENOBUFS`.
///
/// # Platform
///
/// On Linux this maps to io_uring buffer selection (and related multishot APIs).
/// Other platforms may leave the trait unimplemented or unavailable.