Commit Graph

5 Commits

Author SHA1 Message Date
aa18ba5992 Cargo Format 2024-10-14 21:07:29 -05:00
1ca0394d4a Run length stored and checked during iteration
The run length can simply be extracted and stored as part of the
iterator state. For each iteration, check if the length is > 0, and emit
more pixels until it isn't. Then continue the normal decode process.
2024-10-14 21:07:29 -05:00
ef4b31dab6 Most of the decoders, but the match is broken
I was going to try to match over the op codes, but that isn't possible.

Most of the decoders are done, too, but I'm quite sure that the delta
operations will encounter a wrap around and then panic. The OP_RUN is a
problem, as well. I think I'm going to cheat this problem by holding a
counter. This way I can see if I'm in a run, and then emit another pixel
copy until counter == 0.
2024-10-14 21:07:29 -05:00
4a31b1e20a Change struct to grab input iterator, not slice
I want to iterate over the input elements, and I couldn't figure out how
to get the slice lifetime to be specified properly. I've swapped the
slice for any Iterator that emits u8's.
2024-10-14 21:07:29 -05:00
b77f32b2df Unit tests for unpacking each of the op codes
These tests can be used to verify the fundamentals of the decoder: That
individual instructions are parsed correctly and converted back into
the correct pixel values.
2024-10-14 21:07:29 -05:00