in src/protocol/http/src/response.rs [97:125]
fn compose(&self, dst: &mut dyn BufMut) -> usize {
let mut dst = crate::util::CountingBuf::new(dst);
dst.put_slice(&self.builder.headers);
if self.builder.close {
dst.put_slice(b"Connection: close\r\n");
} else {
dst.put_slice(b"Connection: keep-alive\r\n");
dst.put_slice(b"Keep-Alive: timeout=60\r\n");
}
if let Some(body) = &self.body {
let mut lenbuf = ArrayVec::<u8, 24>::new();
write!(&mut lenbuf, "{}", body.len()).unwrap();
dst.put_slice(b"Content-Length: ");
dst.put_slice(&lenbuf);
dst.put_slice(b"\r\n");
}
dst.put_slice(b"\r\n");
if let Some(body) = &self.body {
dst.put_slice(body);
}
dst.count()
}