async_http_codec/internal/
enc_helpers.rs1use http::{HeaderMap, StatusCode, Version};
2use std::io;
3use std::io::ErrorKind::InvalidData;
4use std::io::Write;
5
6pub(crate) fn header_encode(buffer: &mut Vec<u8>, headers: &HeaderMap) -> io::Result<()> {
7 for (k, v) in headers {
8 let v = v
9 .to_str()
10 .map_err(|_| io::Error::new(InvalidData, "invalid character in header value"))?;
11 writeln!(buffer, "{}: {}\r", k, v)?;
12 }
13 writeln!(buffer, "\r")?;
14 Ok(())
15}
16
17pub(crate) fn status_line_encode(
18 buffer: &mut Vec<u8>,
19 version: &Version,
20 status: &StatusCode,
21) -> io::Result<()> {
22 writeln!(buffer, "{:?} {}\r", version, status)?;
23 Ok(())
24}