pub fn always_ready<T, F: Fn() -> T>(prod: F) -> AlwaysReady<T, F> {
    assert_future::<T, _>(AlwaysReady(prod))
}
Creates a future that is always immediately ready with a value.

This is particularly useful in avoiding a heap allocation when an API needs [`Box<dyn Future<Output = T>>`],
as [`AlwaysReady`] does not have to store a boolean for `is_finished`.

# Examples

```
# futures::executor::block_on(async {
use std::mem::size_of_val;

use futures::future;

let a = future::always_ready(|| 1);
assert_eq!(size_of_val(&a), 0);
assert_eq!(a.await, 1);
assert_eq!(a.await, 1);
# });
```
futures-util/src/future/always_ready.rs