pub fn peek_mut(self: Pin<&mut Self>) -> PeekMut<'_, St> {
        PeekMut { inner: Some(self) }
    }
Produces a future which retrieves a mutable reference to the next item
in the stream, or `None` if the underlying stream terminates.

# Examples

```
# futures::executor::block_on(async {
use core::pin::pin;

use futures::stream;
use futures::stream::StreamExt;

let stream = stream::iter(vec![1, 2, 3]).peekable();
let mut stream = pin!(stream);

assert_eq!(stream.as_mut().peek_mut().await, Some(&mut 1));
assert_eq!(stream.as_mut().next().await, Some(1));

// Peek into the stream and modify the value which will be returned next
if let Some(p) = stream.as_mut().peek_mut().await {
if *p == 2 {
*p = 5;
}
}

assert_eq!(stream.collect::<Vec<_>>().await, vec![5, 3]);
# });
```
futures-util/src/stream/stream/peek.rs