Crates.io | scuffle-expgolomb |
lib.rs | scuffle-expgolomb |
version | 0.1.5 |
created_at | 2025-02-09 19:34:01.126902+00 |
updated_at | 2025-07-12 15:18:26.305701+00 |
description | Exponential-Golomb encoder and decoder. |
homepage | |
repository | https://github.com/scufflecloud/scuffle |
max_upload_size | |
id | 1549226 |
size | 28,863 |
[!WARNING]
This crate is under active development and may not be stable.
A set of helper functions to encode and decode exponential-golomb values.
This crate extends upon the [BitReader
] and [BitWriter
] from the
[scuffle-bytes-util
][scuffle_bytes_util] crate to provide functionality
for reading and writing Exp-Golomb encoded numbers.
See the changelog for a full release history.
docs
— Enables changelog and documentation of feature flagsuse scuffle_expgolomb::{BitReaderExpGolombExt, BitWriterExpGolombExt};
use scuffle_bytes_util::{BitReader, BitWriter};
let mut bit_writer = BitWriter::default();
bit_writer.write_exp_golomb(0)?;
bit_writer.write_exp_golomb(1)?;
bit_writer.write_exp_golomb(2)?;
let data: Vec<u8> = bit_writer.finish()?;
let mut bit_reader = BitReader::new(std::io::Cursor::new(data));
let result = bit_reader.read_exp_golomb()?;
assert_eq!(result, 0);
let result = bit_reader.read_exp_golomb()?;
assert_eq!(result, 1);
let result = bit_reader.read_exp_golomb()?;
assert_eq!(result, 2);
This project is licensed under the MIT or Apache-2.0 license. You can choose between one of them if you use this work.
SPDX-License-Identifier: MIT OR Apache-2.0