Expand description
§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§
- A value that can be (de)serialized using signed LEB128 variable length compression.
- A value that can be (de)serialized using unsigned LEB128 variable length compression.
Enums§
- Errors that can occur when decoding LEB128 compressed values.
- Errors that can occur when encoding values using LEB128 compression.