data-encoding
data-encoding copied to clipboard
Release 3.0.0
Required tasks:
- [x] Use static dispatch instead of dynamic dispatch
- [x] Use
staticinstead ofconstfor pre-defined encodings - [x] Make
Encodingimplementation private - [x] Add
_uninit()version to supportMaybeUninitoutputs - [x] Move development work in
lib/v3 - [ ] Make
encode_len()return aResultsuch that{en,de}code_len()return an error (could be a newErrorKind::Overflow) in case the following arithmetic would overflow by computing the bound and documenting it (see #145) - [ ] Introduce explicit traits to avoid users seeing
TrueandFalse(also useful to avoid parameter ordering issues) - [ ] Restrict symbols to printable/graphical ASCII?
- [ ] Do we really need wrapping separator of up to 255 bytes? Seems like 15 would be enough.
- [ ] Add a third option for padding: NoPad, PadConcat, PadFinal (new). [context]
- [ ] Do not panic for recoverable errors, return an error instead (see #126) actually we should be no-panic on no-alloc
- [ ] It should be possible to define custom encodings with
const fn - [ ] Figure out MSRV (in particular if 1.84 would solve the problem definitely)
- [ ] Update documentation once satisfied with the design
- [ ] Update OSS-Fuzz to also fuzz
lib/v3
Optional tasks:
- [ ] Consider whether wrapping should be limited to multiple of the decoding block (use case)
- [ ] Identify and fix performance regression with "wrap" functions
- [ ] Add SIMD support (see #95)
- [ ] Consider whether a "short input" engine for base58, nix-base32, etc would be worth it (see #110)
After release:
- [ ] Update OSS-Fuzz if needed