in dubbo/src/triple/encode.rs [174:195]
fn poll_trailers(
self: Pin<&mut Self>,
_cx: &mut std::task::Context<'_>,
) -> Poll<Result<Option<http::HeaderMap>, Self::Error>> {
let self_proj = self.project();
if *self_proj.is_end_stream {
return Poll::Ready(Ok(None));
}
let status = if let Some(status) = self_proj.error.take() {
*self_proj.is_end_stream = true;
status
} else {
crate::status::Status::new(
crate::status::Code::Ok,
"poll trailer successfully.".to_string(),
)
};
let http = status.to_http();
Poll::Ready(Ok(Some(http.headers().to_owned())))
}