Sign In

base64

Package Overview
Dependencies
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

base64 - cargo Package Compare versions

Comparing version
0.21.3
to
0.21.4
+1
-1
.cargo_vcs_info.json
{
"git": {
"sha1": "6f9f73481506597750c9ab6674329cbb2b6679f0"
"sha1": "b88fd5bfdcc44409491cdb28105f660f09e08711"
},
"path_in_vcs": ""
}

@@ -6,11 +6,2 @@ # This file is automatically @generated by Cargo.

[[package]]
name = "aho-corasick"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
dependencies = [
"memchr",
]
[[package]]
name = "anes"

@@ -49,3 +40,3 @@ version = "0.1.6"

name = "base64"
version = "0.21.3"
version = "0.21.4"
dependencies = [

@@ -332,8 +323,2 @@ "criterion",

[[package]]
name = "memchr"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "memoffset"

@@ -368,5 +353,5 @@ version = "0.9.0"

name = "once_cell"
version = "1.18.0"
version = "1.17.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b"

@@ -387,5 +372,5 @@ [[package]]

name = "plotters"
version = "0.3.5"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
dependencies = [

@@ -516,9 +501,6 @@ "num-traits",

name = "regex"
version = "1.9.3"
version = "1.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
dependencies = [
"aho-corasick",
"memchr",
"regex-automata",
"regex-syntax",

@@ -528,17 +510,6 @@ ]

[[package]]
name = "regex-automata"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.7.4"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"

@@ -622,3 +593,3 @@ [[package]]

"quote",
"syn 2.0.29",
"syn 2.0.31",
]

@@ -628,5 +599,5 @@

name = "serde_json"
version = "1.0.105"
version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
checksum = "2cc66a619ed80bf7a0f6b17dd063a84b88f6dea1813737cf469aef1d081142c2"
dependencies = [

@@ -681,5 +652,5 @@ "itoa",

name = "syn"
version = "2.0.29"
version = "2.0.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398"
dependencies = [

@@ -748,5 +719,5 @@ "proc-macro2",

name = "walkdir"
version = "2.3.3"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
dependencies = [

@@ -784,3 +755,3 @@ "same-file",

"quote",
"syn 2.0.29",
"syn 2.0.31",
"wasm-bindgen-shared",

@@ -807,3 +778,3 @@ ]

"quote",
"syn 2.0.29",
"syn 2.0.31",
"wasm-bindgen-backend",

@@ -810,0 +781,0 @@ "wasm-bindgen-shared",

@@ -16,3 +16,3 @@ # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO

name = "base64"
version = "0.21.3"
version = "0.21.4"
authors = [

@@ -19,0 +19,0 @@ "Alice Maz <alice@alicemaz.com>",

@@ -0,1 +1,5 @@

# 0.21.4
- Make `encoded_len` `const`, allowing the creation of arrays sized to encode compile-time-known data lengths
# 0.21.3

@@ -15,3 +19,4 @@

- Remove the possibility of panicking during decoded length calculations
- `DecoderReader` no longer sometimes erroneously ignores padding [#226](https://github.com/marshallpierce/rust-base64/issues/226)
- `DecoderReader` no longer sometimes erroneously ignores
padding [#226](https://github.com/marshallpierce/rust-base64/issues/226)

@@ -68,3 +73,4 @@ ## Breaking changes

- Re-exports of preconfigured engines in `engine` are removed in favor of `base64::prelude::...` that are better suited to those who wish to `use` the entire path to a name.
- Re-exports of preconfigured engines in `engine` are removed in favor of `base64::prelude::...` that are better suited
to those who wish to `use` the entire path to a name.

@@ -71,0 +77,0 @@ # 0.21.0-beta.1

@@ -97,21 +97,28 @@ #[cfg(any(feature = "alloc", feature = "std", test))]

/// input lengths in approximately the top quarter of the range of `usize`.
pub fn encoded_len(bytes_len: usize, padding: bool) -> Option<usize> {
pub const fn encoded_len(bytes_len: usize, padding: bool) -> Option<usize> {
let rem = bytes_len % 3;
let complete_input_chunks = bytes_len / 3;
let complete_chunk_output = complete_input_chunks.checked_mul(4);
// `let Some(_) = _ else` requires 1.65.0, whereas this messier one works on 1.48
let complete_chunk_output =
if let Some(complete_chunk_output) = complete_input_chunks.checked_mul(4) {
complete_chunk_output
} else {
return None;
};
if rem > 0 {
if padding {
complete_chunk_output.and_then(|c| c.checked_add(4))
complete_chunk_output.checked_add(4)
} else {
let encoded_rem = match rem {
1 => 2,
2 => 3,
_ => unreachable!("Impossible remainder"),
// only other possible remainder is 2
// can't use a separate _ => unreachable!() in const fns in ancient rust versions
_ => 3,
};
complete_chunk_output.and_then(|c| c.checked_add(encoded_rem))
complete_chunk_output.checked_add(encoded_rem)
}
} else {
complete_chunk_output
Some(complete_chunk_output)
}

@@ -118,0 +125,0 @@ }

@@ -47,1 +47,32 @@ use base64::{

}
#[test]
fn encoded_len_unpadded() {
assert_eq!(0, encoded_len(0, false).unwrap());
assert_eq!(2, encoded_len(1, false).unwrap());
assert_eq!(3, encoded_len(2, false).unwrap());
assert_eq!(4, encoded_len(3, false).unwrap());
assert_eq!(6, encoded_len(4, false).unwrap());
assert_eq!(7, encoded_len(5, false).unwrap());
assert_eq!(8, encoded_len(6, false).unwrap());
assert_eq!(10, encoded_len(7, false).unwrap());
}
#[test]
fn encoded_len_padded() {
assert_eq!(0, encoded_len(0, true).unwrap());
assert_eq!(4, encoded_len(1, true).unwrap());
assert_eq!(4, encoded_len(2, true).unwrap());
assert_eq!(4, encoded_len(3, true).unwrap());
assert_eq!(8, encoded_len(4, true).unwrap());
assert_eq!(8, encoded_len(5, true).unwrap());
assert_eq!(8, encoded_len(6, true).unwrap());
assert_eq!(12, encoded_len(7, true).unwrap());
}
#[test]
fn encoded_len_overflow() {
let max_size = usize::MAX / 4 * 3 + 2;
assert_eq!(2, max_size % 3);
assert_eq!(Some(usize::MAX), encoded_len(max_size, false));
assert_eq!(None, encoded_len(max_size + 1, false));
}

Sorry, the diff of this file is not supported yet