Skip to content

Commit d9cf6a3

Browse files
committed
refactor: cleaner header parsing
Builds off #134 (swar), #138 (Bytes cursor) Cleaner, faster and less macros ! - Broke down header-parsing into clean conceptual steps (whilst being faster !) - Added InnerResult allowing for idiomatic `?` early-exits, removing need for parsing-helper macros - Removed macros.rs, leaving only `byte_map!` (response header-parsing macros should become functions)
1 parent 9ef6d3e commit d9cf6a3

File tree

4 files changed

+353
-250
lines changed

4 files changed

+353
-250
lines changed

benches/parse.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,11 @@ fn version(c: &mut Criterion) {
152152
.bench_function(name, |b| b.iter(|| {
153153
black_box({
154154
let mut b = httparse::_benchable::Bytes::new(input);
155-
httparse::_benchable::parse_version(&mut b).unwrap()
155+
match httparse::_benchable::parse_version(&mut b) {
156+
// Somewhat awkward, but this is internal code so it's ok.
157+
Ok(_) | Err(None) => (),
158+
Err(Some(e)) => panic!("parse_version failed: {}", e),
159+
}
156160
});
157161
}));
158162
}

0 commit comments

Comments
 (0)