i looked at the rpgp codebase and it is very good code. incredibly small and the directory structure alone is remarkably effective
#[derive(Debug, Snafu)]
#[snafu(display("needed {}, remaining {}", needed, remaining))]
pub struct RemainingError {
pub needed: usize,
pub remaining: usize,
backtrace: Option<Backtrace>,
}

wrote a good amount of code like this for the zstd impl that stopped when i realized zstd was weird and bad

i'm gonna try to make the proof of concept for length extension now. i'm very confident i'm right
i have to generate their fucked up little format
you literally just generate blocks that have zero length
it's the most unnecessary thing https://amass.energy/rustdoc/yzx-unstable/yzx_core/frame/data/ ziv-lempel's bullshit already lets you do run-length shit. why are there TWO ways to encode a run-length block of the same byte
yzx_core::frame::data - Rust

Encoding of a Zstandard frame.

the problem with e.g. writing code that would analyze .tar.zsts in the wild is that the zstd format is brain destroying and offensively poorly documented
yann collet owes me 1 million dollars for being incredibly insecure and not writing up his "standard"
SequenceBehavior in yzx_core::frame::data::block - Rust

API documentation for the Rust `SequenceBehavior` enum in crate `yzx_core`.

@hipsterelectron pay your respects