fn poll_next()

in core/src/layers/logging.rs [1135:1179]


    fn poll_next(&mut self, cx: &mut Context<'_>) -> Poll<Option<Result<Bytes>>> {
        match self.inner.poll_next(cx) {
            Poll::Ready(res) => match res {
                Some(Ok(bs)) => {
                    self.read += bs.len() as u64;
                    trace!(
                        target: LOGGING_TARGET,
                        "service={} operation={} path={} read={} -> data read {}B",
                        self.scheme,
                        ReadOperation::Next,
                        self.path,
                        self.read,
                        bs.len()
                    );
                    Poll::Ready(Some(Ok(bs)))
                }
                Some(Err(err)) => {
                    if let Some(lvl) = self.failure_level {
                        log!(
                            target: LOGGING_TARGET,
                            lvl,
                            "service={} operation={} path={} read={} -> data read failed: {err:?}",
                            self.scheme,
                            ReadOperation::Next,
                            self.path,
                            self.read,
                        )
                    }
                    Poll::Ready(Some(Err(err)))
                }
                None => Poll::Ready(None),
            },
            Poll::Pending => {
                trace!(
                    target: LOGGING_TARGET,
                    "service={} operation={} path={} read={} -> data read pending",
                    self.scheme,
                    ReadOperation::Next,
                    self.path,
                    self.read
                );
                Poll::Pending
            }
        }
    }