debug!("chose simd128 for {}", stringify!($ty));
debug_assert!($ty::is_available()); // SAFETY: We know that wasm memchr is always available whenever // code is compiled for `wasm32` with the `simd128` target feature // enabled.
$ty::new_unchecked($($needles),+).$find($start, $end)
}}
}
/// memchr, but using raw pointers to represent the haystack. /// /// # Safety /// /// Pointers must be valid. See `One::find_raw`. #[inline(always)] pub(crate) unsafefn memchr_raw(
n1: u8,
start: *const u8,
end: *const u8,
) -> Option<*const u8> {
defraw!(One, find_raw, start, end, n1)
}
/// memrchr, but using raw pointers to represent the haystack. /// /// # Safety /// /// Pointers must be valid. See `One::rfind_raw`. #[inline(always)] pub(crate) unsafefn memrchr_raw(
n1: u8,
start: *const u8,
end: *const u8,
) -> Option<*const u8> {
defraw!(One, rfind_raw, start, end, n1)
}
/// memchr2, but using raw pointers to represent the haystack. /// /// # Safety /// /// Pointers must be valid. See `Two::find_raw`. #[inline(always)] pub(crate) unsafefn memchr2_raw(
n1: u8,
n2: u8,
start: *const u8,
end: *const u8,
) -> Option<*const u8> {
defraw!(Two, find_raw, start, end, n1, n2)
}
/// memrchr2, but using raw pointers to represent the haystack. /// /// # Safety /// /// Pointers must be valid. See `Two::rfind_raw`. #[inline(always)] pub(crate) unsafefn memrchr2_raw(
n1: u8,
n2: u8,
start: *const u8,
end: *const u8,
) -> Option<*const u8> {
defraw!(Two, rfind_raw, start, end, n1, n2)
}
/// memchr3, but using raw pointers to represent the haystack. /// /// # Safety /// /// Pointers must be valid. See `Three::find_raw`. #[inline(always)] pub(crate) unsafefn memchr3_raw(
n1: u8,
n2: u8,
n3: u8,
start: *const u8,
end: *const u8,
) -> Option<*const u8> {
defraw!(Three, find_raw, start, end, n1, n2, n3)
}
/// memrchr3, but using raw pointers to represent the haystack. /// /// # Safety /// /// Pointers must be valid. See `Three::rfind_raw`. #[inline(always)] pub(crate) unsafefn memrchr3_raw(
n1: u8,
n2: u8,
n3: u8,
start: *const u8,
end: *const u8,
) -> Option<*const u8> {
defraw!(Three, rfind_raw, start, end, n1, n2, n3)
}
/// Count all matching bytes, but using raw pointers to represent the haystack. /// /// # Safety /// /// Pointers must be valid. See `One::count_raw`. #[inline(always)] pub(crate) unsafefn count_raw(
n1: u8,
start: *const u8,
end: *const u8,
) -> usize {
defraw!(One, count_raw, start, end, n1)
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-23)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.