pub(crate) fn iterate_special_bytes<F, T>(
    bytes: &[u8],
    ix: usize,
    callback: F,
) -> (usize, Option<T>)
where
    F: FnMut(usize, u8) -> LoopInstruction<Option<T>>,
{
    if is_x86_feature_detected!("ssse3") && bytes.len() >= VECTOR_SIZE {
        unsafe { simd_iterate_special_bytes(bytes, ix, callback) }
    } else {
        crate::parse::scalar_iterate_special_bytes(bytes, ix, callback)
    }
}
/// Calls callback on byte indices and their value.
/// Breaks when callback returns LoopInstruction::BreakAtWith(ix, val). And skips the
/// number of bytes in callback return value otherwise.
/// Returns the final index and a possible break value.
Calls callback on byte indices and their value.
Calls callback on byte indices and their value .
pub(crate) fn iterate_special_bytes<F, T>(
    bytes: &[u8],
    ix: usize,
    callback: F,
) -> (usize, Option<T>)
where
    F: FnMut(usize, u8) -> LoopInstruction<Option<T>>,
{
    if is_x86_feature_detected!("ssse3") && bytes.len() >= VECTOR_SIZE {
        unsafe { simd_iterate_special_bytes(bytes, ix, callback) }
    } else {
        crate::parse::scalar_iterate_special_bytes(bytes, ix, callback)
    }
}
pub ( crate ) fn iterate_special_bytes < F , T > ( bytes : & [ u8 ] , ix : usize , callback : F , ) -> ( usize , Option < T > ) where F : FnMut ( usize , u8 ) -> LoopInstruction < Option < T > > , { if is_x86_feature_detected ! ( " " ) && bytes . len ( ) >= VECTOR_SIZE { unsafe { simd_iterate_special_bytes ( bytes , ix , callback ) } } else { crate :: parse :: scalar_iterate_special_bytes ( bytes , ix , callback ) } }
Calls callback on byte indices and their value.
Calls callback on byte indices and their value .
bytes
&[u8]
ix
usize
callback
F