Skip to content

Commit 0f12be8

Browse files
committed
refactor: replace manual byte search with memchr
1 parent e670a08 commit 0f12be8

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

src/simd.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
use std::arch::x86_64::*;
33

44
use std::sync::atomic::{AtomicU8, Ordering};
5+
use memchr::memchr;
56

67
const SIMD_UNKNOWN: u8 = 0;
78
const SIMD_AVAILABLE: u8 = 1;
@@ -303,7 +304,7 @@ pub fn find_message_boundary(data: &[u8], pattern: u8) -> Option<usize> {
303304
}
304305
}
305306

306-
data.iter().position(|&b| b == pattern)
307+
memchr(pattern, data)
307308
}
308309

309310
#[inline(always)]
@@ -2074,7 +2075,7 @@ mod tests {
20742075
let pattern = 255u8;
20752076

20762077
let result_simd = find_message_boundary(&data, pattern);
2077-
let result_scalar = data.iter().position(|&b| b == pattern);
2078+
let result_scalar = memchr(pattern, &data);
20782079

20792080
assert_eq!(result_simd, result_scalar);
20802081
}

0 commit comments

Comments
 (0)