Skip to main content

write_field_value

Function write_field_value 

Source
pub fn write_field_value(
    s: &[u8],
    out: &mut impl Sink,
) -> Result<(), WriteError>
Expand description

Writes s as a field value, after checking every byte is field-vchar, SP, HTAB, or obs-text.

This is the header-injection guard: a value containing CR, LF, or NUL can never reach the wire through it.

§Errors

WriteError::Forbidden at the first refused byte; WriteError::Full.

§Examples

use parse_net::{write::write_field_value, SliceSink, WriteError};

let mut buf = [0u8; 32];
let mut out = SliceSink::new(&mut buf);
write_field_value(b"text/html; charset=utf-8", &mut out)?;
assert_eq!(write_field_value(b"a\r\nb", &mut out), Err(WriteError::Forbidden { at: 1 }));