File size: 502 Bytes
63f41a6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
fn is_ws(b: u8) -> bool {
    b == b' ' || b == b'\t' || b == b'\n' || b == b'\r' || b == 11u8 || b == 12u8
}
pub fn header_field_ok(s: &[u8]) -> bool {
    let mut start = 0usize;
    let mut end = s.len();
    while start < end && is_ws(s[start]) {
        start += 1;
    }
    while end > start && is_ws(s[end - 1]) {
        end -= 1;
    }
    let mut ok = true;
    let mut i = start;
    while i < end {
        if s[i] >= 128 {
            ok = false;
        }
        i += 1;
    }
    ok
}