[][src]Crate varint_simd

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

decode
encode
num

Enums

VarIntDecodeError

Functions

decodessse3

Decodes a single varint from the input slice. Requires SSSE3 support.

decode_eight_u8_unsafessse3

Decodes four adjacent varints into u8's simultaneously. Requires SSSE3 support. Does not perform overflow checking and may produce incorrect output.

decode_four_unsafessse3

Decodes four adjacent varints simultaneously. Target types must fit within 16 bytes when varint encoded. Requires SSSE3 support.

decode_two_unsafessse3

Decodes two adjacent varints simultaneously. Target types must fit within 16 bytes when varint encoded. Requires SSSE3 support.

decode_two_wide_unsafeavx2

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.

decode_unsafessse3

Decodes a single varint from the input pointer. Requires SSSE3 support. Returns a tuple containing the decoded number and the number of bytes read.

decode_zigzagssse3

Convenience function for decoding a single varint in ZigZag format from the input slice. See also: decode

encodesse2

Encodes a single number to a varint. Requires SSE2 support.

encode_to_slicesse2

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_unsafesse2

Encodes a single number to a varint. Requires SSE2 support.

encode_zigzagsse2

Convenience function for encoding a single signed integer in ZigZag format to a varint. See also: encode