Data compression
Variable length integers
-
typedef uint32_t ulib_varint
Unsigned variable-length integer type.
This type can be controlled through the
ULIB_VARINT_TYPEpreprocessor definition.
-
typedef int32_t ulib_svarint
Signed variable-length integer type.
This type can be controlled through the
ULIB_SVARINT_TYPEpreprocessor definition.
-
ulib_ret uistream_read_varint(UIStream *stream, ulib_varint *value, size_t *read)
Reads a variable-length unsigned integer.
- Parameters:
stream – Input stream.
value – [out] Decoded value.
read – [out] Number of bytes read.
- Returns:
Return code.
-
ulib_ret uistream_read_svarint(UIStream *stream, ulib_svarint *value, size_t *read)
Reads a variable-length signed integer.
- Parameters:
stream – Input stream.
value – [out] Decoded value.
read – [out] Number of bytes read.
- Returns:
Return code.
-
ulib_ret uostream_write_varint(UOStream *stream, ulib_varint value, size_t *written)
Writes a variable-length unsigned integer.
- Parameters:
stream – Output stream.
value – Value to encode.
written – [out] Number of bytes written.
- Returns:
Return code.
-
ulib_ret uostream_write_svarint(UOStream *stream, ulib_svarint value, size_t *written)
Writes a variable-length signed integer.
- Parameters:
stream – Output stream.
value – Value to encode.
written – [out] Number of bytes written.
- Returns:
Return code.