fn compose()

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()
    }