DecodeSliceError::OutputSliceTooSmall is now conservative rather than precise. That is, the error will only occur if the decoded output cannot fit, meaning that Engine::decode_slice can now be used with exactly-sized output slices. As part of this, Engine::internal_decode now returns DecodeSliceError instead of DecodeError, but that is not expected to affect any external callers.
DecodeError::InvalidLength now refers specifically to the number of valid symbols being invalid (i.e. len % 4 == 1), rather than just the number of input bytes. This avoids confusing scenarios when based on interpretation you could make a case for either InvalidLength or InvalidByte being appropriate.
Decoding is somewhat faster (5-10%)
0.21.7
Support getting an alphabet's contents as a str via Alphabet::as_str()
0.21.6
Improved introductory documentation and example
0.21.5
Add Debug and Clone impls for the general purpose Engine
0.21.4
Make encoded_lenconst, allowing the creation of arrays sized to encode compile-time-known data lengths
0.21.3
Implement source instead of cause on Error types
Roll back MSRV to 1.48.0 so Debian can continue to live in a time warp
Slightly faster chunked encoding for short inputs
Decrease binary size
0.21.2
Rollback MSRV to 1.57.0 -- only dev dependencies need 1.60, not the main code
0.21.1
Remove the possibility of panicking during decoded length calculations
DecoderReader no longer sometimes erroneously ignores
padding #226
Breaking changes
Engine.internal_decode return type changed
Update MSRV to 1.60.0
0.21.0
Migration
Functions
... (truncated)
Commits
5d70ba7 Merge pull request #269 from marshallpierce/mp/decode-precisely
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on base64 to permit the latest version.
Changelog
Sourced from base64's changelog.
... (truncated)
Commits
5d70ba7
Merge pull request #269 from marshallpierce/mp/decode-preciselyefb6c00
Release notes2b91084
Add some tests to boost coverage9e9c7ab
Engine::internal_decode now returns DecodeSliceErrora8a60f4
Decode main loop improvementsa25be06
Simplify leftover output writes9979cc3
Keep morsels as separate bytes37670c5
Bump dev toolchain version (#268)9652c78
v0.21.708deccf
provide as_str() method to return the alphabet characters (#264)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show