Skip to content

Commit

Permalink
Make parse_method return const slice
Browse files Browse the repository at this point in the history
Performance experiment
  • Loading branch information
hkBst authored Dec 11, 2024
1 parent 380f130 commit 25b7b16
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -851,18 +851,16 @@ pub fn parse_method<'a>(bytes: &mut Bytes<'a>) -> Result<&'a str> {
Some(GET) => {
// SAFETY: matched the ASCII string and boundary checked
let method = unsafe {
bytes.advance(4);
let buf = bytes.slice_skip(1);
str::from_utf8_unchecked(buf)
bytes.advance_and_commit(4);
str::from_utf8_unchecked(GET[..GET.len()-1])

Check failure on line 855 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +sse4.2,+avx2 on beta

mismatched types

Check failure on line 855 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +avx2 on beta

mismatched types

Check failure on line 855 in src/lib.rs

View workflow job for this annotation

GitHub Actions / check x86

mismatched types

Check failure on line 855 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +sse4.2,+avx2 on beta

mismatched types

Check failure on line 855 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +sse4.2 on beta

mismatched types

Check failure on line 855 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +avx2 on nightly

mismatched types

Check failure on line 855 in src/lib.rs

View workflow job for this annotation

GitHub Actions / msrv (x64)

mismatched types
};
Ok(Status::Complete(method))
}
Some(POST) if bytes.peek_ahead(4) == Some(b' ') => {
// SAFETY: matched the ASCII string and boundary checked
let method = unsafe {
bytes.advance(5);
let buf = bytes.slice_skip(1);
str::from_utf8_unchecked(buf)
bytes.advance_and_commit(5);
str::from_utf8_unchecked(POST[..])

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +sse4.2,+avx2 on beta

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +avx2 on beta

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / check x86

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +sse4.2,+avx2 on beta

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +sse4.2 on beta

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / SIMD +avx2 on nightly

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / Test stable on macOS-latest

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / Test beta on ubuntu-latest

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / Test nightly on ubuntu-latest

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / msrv (x64)

mismatched types

Check failure on line 863 in src/lib.rs

View workflow job for this annotation

GitHub Actions / msrv (aarch64)

mismatched types
};
Ok(Status::Complete(method))
}
Expand Down

0 comments on commit 25b7b16

Please sign in to comment.