pub fn poll_peek(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<&St::Item>> {
        let mut this = self.project();

        Poll::Ready(loop {
            if this.peeked.is_some() {
                break this.peeked.as_ref();
            } else if let Some(item) = ready!(this.stream.as_mut().poll_next(cx)) {
                *this.peeked = Some(item);
            } else {
                break None;
            }
        })
    }
Peek retrieves a reference to the next item in the stream.

This method polls the underlying stream and return either a reference
to the next item if the stream is ready or passes through any errors.
futures-util/src/stream/stream/peek.rs