Crate varint_simd
source ·Expand description
varint_simd
is a fast SIMD-accelerated variable-length integer
encoder and decoder written in Rust.
For more information, please see the README.
Re-exports
pub use num::*;
Modules
Enums
Functions
- Decodes a single varint from the input slice.
- decode_eight_u8_unsafe⚠
ssse3
Decodes four adjacent varints into u8’s simultaneously. Requires SSSE3 support. Does not perform overflow checking and may produce incorrect output. - decode_four_unsafe⚠
ssse3
Decodes four adjacent varints simultaneously. Target types must fit within 16 bytes when varint encoded. Requires SSSE3 support. - decode_two_unsafe⚠
ssse3
Decodes two adjacent varints simultaneously. Target types must fit within 16 bytes when varint encoded. Requires SSSE3 support. - Experimental. May have relatively poor performance. Decode two adjacent varints simultaneously from the input pointer. Requires AVX2. Allows for decoding a pair of
u64
values. For smaller values, the non-wide variation of this function will probably be faster. - Decodes a single varint from the input pointer. Returns a tuple containing the decoded number and the number of bytes read.
- Convenience function for decoding a single varint in ZigZag format from the input slice. See also:
decode
- encode
sse2
Encodes a single number to a varint. Requires SSE2 support. - encode_to_slice
sse2
Encodes a single number to a varint, and writes the resulting data to the slice. Returns the number of bytes written (maximum 10 bytes). - encode_unsafe⚠
sse2
Encodes a single number to a varint. Requires SSE2 support. - encode_zigzag
sse2
Convenience function for encoding a single signed integer in ZigZag format to a varint. See also:encode