fn poll_read()

in core/src/layers/logging.rs [1047:1090]


    fn poll_read(&mut self, cx: &mut Context<'_>, buf: &mut [u8]) -> Poll<Result<usize>> {
        match self.inner.poll_read(cx, buf) {
            Poll::Ready(res) => match res {
                Ok(n) => {
                    self.read += n as u64;
                    trace!(
                        target: LOGGING_TARGET,
                        "service={} operation={} path={} read={} -> data read {}B ",
                        self.scheme,
                        ReadOperation::Read,
                        self.path,
                        self.read,
                        n
                    );
                    Poll::Ready(Ok(n))
                }
                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::Read,
                            self.path,
                            self.read,
                        )
                    }
                    Poll::Ready(Err(err))
                }
            },
            Poll::Pending => {
                trace!(
                    target: LOGGING_TARGET,
                    "service={} operation={} path={} read={} -> data read pending",
                    self.scheme,
                    ReadOperation::Read,
                    self.path,
                    self.read
                );
                Poll::Pending
            }
        }
    }