[−][src]Crate nano_leb128
nano-leb128
Little endian base 128 variable-length code compression.
Usage
Signed LEB128 compression/decompression:
use nano_leb128::SLEB128; fn rand_i64() -> i64 { // ... } let mut buf = [0; 10]; let value = rand_i64(); // Compress the value into the buffer. let len = SLEB128::from(value).write_into(&mut buf).unwrap(); // Decompress the value from the buffer. let (decompressed, _len) = SLEB128::read_from(&buf[..len]).unwrap(); assert_eq!(i64::from(decompressed), value);
Unsigned LEB128 compression/decompression:
use nano_leb128::ULEB128; fn rand_u64() -> u64 { // ... } let mut buf = [0; 10]; let value = rand_u64(); // Compress the value into the buffer. let len = ULEB128::from(value).write_into(&mut buf).unwrap(); // Decompress the value from the buffer. let (decompressed, _len) = ULEB128::read_from(&buf[..len]).unwrap(); assert_eq!(u64::from(decompressed), value);
Features
-
std
(enabled by default)This enables extensions that are only available with the Rust standard library.
-
std_io_ext
Adds methods for reading/writing LEB128 compressed values from implementors of the traits in
std::io
. This feature requires thestd
feature and will automatically enable it if it is not already enabled. -
byteio_ext
Adds methods for reading/writing LEB128 compressed values from implementors of the traits in
byteio
. This feature does not require thestd
feature.
Structs
SLEB128 | A value that can be (de)serialized using signed LEB128 variable length compression. |
ULEB128 | A value that can be (de)serialized using unsigned LEB128 variable length compression. |
Enums
LEB128DecodeError | Errors that can occur when decoding LEB128 compressed values. |
LEB128EncodeError | Errors that can occur when encoding values using LEB128 compression. |