Update Rust crate base64 to 0.22.0 #83
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.9.3->0.22.0Release Notes
marshallpierce/rust-base64 (base64)
v0.22.1Compare Source
alphabet::BIN_HEX.v0.22.0Compare Source
DecodeSliceError::OutputSliceTooSmallis now conservative rather than precise. That is, the error will only occur if the decoded output cannot fit, meaning thatEngine::decode_slicecan now be used with exactly-sized output slices. As part of this,Engine::internal_decodenow returnsDecodeSliceErrorinstead ofDecodeError, but that is not expected to affect any external callers.DecodeError::InvalidLengthnow 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 eitherInvalidLengthorInvalidBytebeing appropriate.v0.21.7Compare Source
Alphabet::as_str()v0.21.6Compare Source
v0.21.5Compare Source
DebugandCloneimpls for the general purpose Enginev0.21.4Compare Source
encoded_lenconst, allowing the creation of arrays sized to encode compile-time-known data lengthsv0.21.3Compare Source
sourceinstead ofcauseon Error typesv0.21.2Compare Source
v0.21.1Compare Source
DecoderReaderno longer sometimes erroneously ignorespadding #226
Breaking changes
Engine.internal_decodereturn type changedv0.21.0Compare Source
Migration
Functions
encode()engine::general_purpose::STANDARD.encode()orprelude::BASE64_STANDARD.encode()encode_config()engine.encode()encode_config_buf()engine.encode_string()encode_config_slice()engine.encode_slice()decode()engine::general_purpose::STANDARD.decode()orprelude::BASE64_STANDARD.decode()decode_config()engine.decode()decode_config_buf()engine.decode_vec()decode_config_slice()engine.decode_slice()The short-lived 0.20 functions were the 0.13 functions with
configreplaced withengine.Padding
If applicable, use the preset engines
engine::STANDARD,engine::STANDARD_NO_PAD,engine::URL_SAFE,or
engine::URL_SAFE_NO_PAD.The
NO_PADones require that padding is absent when decoding, and the others require thatcanonical padding is present .
If you need the < 0.20 behavior that did not care about padding, or want to recreate < 0.20.0's predefined
Configsprecisely, see the following table.
encode_paddingdecode_padding_modev0.20.0Compare Source
Breaking changes
correct padding.
NO_PADconfig now requires that padding be absent when decoding.0.20.0-alpha.1
Breaking changes
Configconcept into theEngineabstraction, allowing the user to pick different encoding / decodingimplementations.
FastPortableengine, so named because it's portable (works onany CPU) and relatively fast.
implementation (#153,
presumably
ConstantTimePortable?) for security-sensitive applications that need side-channel resistance, andCPU-specific SIMD implementations for more speed.
DEFAULT_ENGINE. To use different alphabets or other settings (padding, etc), create your own engine instance.
CharacterSetis nowAlphabet(per the RFC), and allows creating custom alphabets. The corresponding tables thatwere previously code-generated are now built dynamically.
discoverable.
const fn.DecoderReadernow owns its inner reader, and can expose it viainto_inner(). For symmetry,EncoderWritercan dothe same with its writer.
encoded_lenis now public so you can size encode buffers precisely.v0.13.1Compare Source
decode_config.v0.13.0Compare Source
EncoderStringWriterto allow encoding directly to a StringEncoderWriternow owns its delegate writer rather than keeping a reference to it (though refs still work)EncoderWriterviafinish(), whichreturns
Result<W>instead ofResult<()>. If you were callingfinish()explicitly, you will now need touse
let _ = foo.finish()instead of justfoo.finish()to avoid a warning about the unused value.InvalidBytewill beemitted instead of
InvalidLengthto make the problem more obvious.v0.12.3Compare Source
v0.12.2Compare Source
BinHexalphabetv0.12.1Compare Source
Bcryptalphabetv0.12.0Compare Source
Readimplementation (DecoderReader) to let users transparently decoded data from a b64 input sourceAsRef<[ut8]>for mainencode*/decode*functionsv0.11.0Compare Source
no_stdis now supported via the two new featuresallocandstd.v0.10.1Compare Source
didn't write all the bytes given to it, the remaining bytes would not be retried later. See the docs
on
EncoderWriter::write.v0.10.0Compare Source
encoding, etc) either couldn't support it or could support only special cases of it with a great increase in
complexity. Line wrapping has been pulled out into a line-wrap crate, so it's
still available if you need it.
Base64Displaycreation no longer uses aResultbecause it can't fail, which means its helper methods forcommon
configs that
unwrap()for you are no longer neededWriteimpl to transparently base64 as you write.unsafecode.no_stdsupport. No out of the box configs use it, and it's trivial to doyourself if needed:
filter(|b| !b" \n\t\r\x0b\x0c".contains(b).Configuration
📅 Schedule: Branch creation - Tuesday through Thursday ( * * * * 2-4 ) (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.