Function varint_simd::decode_four_unsafe
source · pub unsafe fn decode_four_unsafe<T: VarIntTarget, U: VarIntTarget, V: VarIntTarget, W: VarIntTarget>(
bytes: *const u8
) -> (T, U, V, W, u8, u8, u8, u8, bool)
Available with target feature
ssse3
only.Expand description
Decodes four adjacent varints simultaneously. Target types must fit within 16 bytes when varint encoded. Requires SSSE3 support.
Returns a tuple containing the four encoded values, followed by the number of bytes read for each encoded value, followed by a boolean indicator for whether the length values may be incorrect due to overflow.
For best performance, ensure each target type is u16
or smaller.
Safety
There must be at least 16 bytes of allocated memory after the start of the pointer. Otherwise, there may be undefined behavior. Any data after the four varints are ignored. Truncated values will be returned if a varint exceeds the target type’s limit.