commit 0da9e9bda792358586a8367ac2a5166dc635e3eb
parent 40f293ffd868f5c004e91ea8a358427076a52f9c
Author: Antoine A <>
Date: Tue, 28 Jan 2025 09:22:09 +0100
common: update dependencies and clean code
Diffstat:
9 files changed, 155 insertions(+), 101 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -150,7 +150,7 @@ dependencies = [
"bytes",
"form_urlencoded",
"futures-util",
- "http 1.2.0",
+ "http",
"http-body",
"http-body-util",
"hyper",
@@ -182,7 +182,7 @@ checksum = "df1362f362fd16024ae199c1970ce98f9661bf5ef94b9808fee734bc3698b733"
dependencies = [
"bytes",
"futures-util",
- "http 1.2.0",
+ "http",
"http-body",
"http-body-util",
"mime",
@@ -196,9 +196,9 @@ dependencies = [
[[package]]
name = "axum-test"
-version = "17.1.0"
+version = "17.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "375ec4f6db373ce6d696839249203c57049aefe1213cfa77bb2e12e10ed43d08"
+checksum = "317c1f4ecc1e68e0ad5decb78478421055c963ce215e736ed97463fa609cd196"
dependencies = [
"anyhow",
"assert-json-diff",
@@ -207,7 +207,7 @@ dependencies = [
"bytes",
"bytesize",
"cookie",
- "http 1.2.0",
+ "http",
"http-body-util",
"hyper",
"hyper-util",
@@ -446,9 +446,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
name = "cpufeatures"
-version = "0.2.16"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3"
+checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
dependencies = [
"libc",
]
@@ -551,7 +551,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
dependencies = [
"generic-array",
- "rand_core",
+ "rand_core 0.6.4",
"subtle",
"zeroize",
]
@@ -755,7 +755,7 @@ dependencies = [
"group",
"pem-rfc7468",
"pkcs8",
- "rand_core",
+ "rand_core 0.6.4",
"sec1",
"subtle",
"zeroize",
@@ -811,7 +811,7 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
dependencies = [
- "rand_core",
+ "rand_core 0.6.4",
"subtle",
]
@@ -937,7 +937,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
"cfg-if",
"libc",
- "wasi",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi 0.13.3+wasi-0.2.2",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -959,7 +971,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
dependencies = [
"ff",
- "rand_core",
+ "rand_core 0.6.4",
"subtle",
]
@@ -1052,17 +1064,6 @@ dependencies = [
[[package]]
name = "http"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
-dependencies = [
- "bytes",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "http"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea"
@@ -1079,7 +1080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
dependencies = [
"bytes",
- "http 1.2.0",
+ "http",
]
[[package]]
@@ -1090,7 +1091,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
dependencies = [
"bytes",
"futures-util",
- "http 1.2.0",
+ "http",
"http-body",
"pin-project-lite",
]
@@ -1116,7 +1117,7 @@ dependencies = [
"bytes",
"futures-channel",
"futures-util",
- "http 1.2.0",
+ "http",
"http-body",
"httparse",
"httpdate",
@@ -1152,7 +1153,7 @@ dependencies = [
"bytes",
"futures-channel",
"futures-util",
- "http 1.2.0",
+ "http",
"http-body",
"hyper",
"pin-project-lite",
@@ -1392,9 +1393,9 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
[[package]]
name = "jiff"
-version = "0.1.25"
+version = "0.1.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb73dbeee753ae9411475ddd8861765fa7f25fe1eebf180c24e1bbabef3fbdcd"
+checksum = "c607c728e28764fecde611a2764a3a5db19ae21dcec46f292244f5cc5c085a81"
dependencies = [
"log",
"portable-atomic",
@@ -1495,7 +1496,7 @@ dependencies = [
"p256",
"passterm",
"percent-encoding",
- "rand_core",
+ "rand_core 0.6.4",
"reqwest",
"serde",
"serde_json",
@@ -1507,7 +1508,7 @@ dependencies = [
"taler-api",
"taler-common",
"taler-test-utils",
- "thiserror 2.0.11",
+ "thiserror",
"tokio",
"tracing",
"tracing-subscriber",
@@ -1576,15 +1577,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd"
dependencies = [
"libc",
- "wasi",
+ "wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys 0.52.0",
]
[[package]]
name = "native-tls"
-version = "0.2.12"
+version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466"
+checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c"
dependencies = [
"libc",
"log",
@@ -1645,9 +1646,9 @@ checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9"
[[package]]
name = "openssl"
-version = "0.10.68"
+version = "0.10.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5"
+checksum = "f5e534d133a060a3c19daec1eb3e98ec6f4685978834f2dbadfe2ec215bab64e"
dependencies = [
"bitflags",
"cfg-if",
@@ -1841,7 +1842,7 @@ version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
dependencies = [
- "zerocopy",
+ "zerocopy 0.7.35",
]
[[package]]
@@ -1888,8 +1889,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
- "rand_chacha",
- "rand_core",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94"
+dependencies = [
+ "rand_chacha 0.9.0",
+ "rand_core 0.9.0",
+ "zerocopy 0.8.14",
]
[[package]]
@@ -1899,7 +1911,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
- "rand_core",
+ "rand_core 0.6.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.9.0",
]
[[package]]
@@ -1908,7 +1930,17 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
- "getrandom",
+ "getrandom 0.2.15",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff"
+dependencies = [
+ "getrandom 0.3.1",
+ "zerocopy 0.8.14",
]
[[package]]
@@ -1994,7 +2026,7 @@ dependencies = [
"bytes",
"futures-core",
"futures-util",
- "http 1.2.0",
+ "http",
"http-body",
"http-body-util",
"hyper",
@@ -2026,12 +2058,12 @@ dependencies = [
[[package]]
name = "reserve-port"
-version = "2.0.1"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9838134a2bfaa8e1f40738fcc972ac799de6e0e06b5157acb95fc2b05a0ea283"
+checksum = "359fc315ed556eb0e42ce74e76f4b1cd807b50fa6307f3de4e51f92dbe86e2d5"
dependencies = [
"lazy_static",
- "thiserror 1.0.69",
+ "thiserror",
]
[[package]]
@@ -2046,18 +2078,18 @@ dependencies = [
[[package]]
name = "rust-multipart-rfc7578_2"
-version = "0.6.1"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03b748410c0afdef2ebbe3685a6a862e2ee937127cdaae623336a459451c8d57"
+checksum = "bc4bb9e7c9abe5fa5f30c2d8f8fefb9e0080a2c1e3c2e567318d2907054b35d3"
dependencies = [
"bytes",
"futures-core",
"futures-util",
- "http 0.2.12",
+ "http",
"mime",
"mime_guess",
- "rand",
- "thiserror 1.0.69",
+ "rand 0.9.0",
+ "thiserror",
]
[[package]]
@@ -2099,9 +2131,9 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
-version = "1.10.1"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37"
+checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c"
[[package]]
name = "rustversion"
@@ -2111,9 +2143,9 @@ checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4"
[[package]]
name = "ryu"
-version = "1.0.18"
+version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd"
[[package]]
name = "same-file"
@@ -2319,7 +2351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
dependencies = [
"digest",
- "rand_core",
+ "rand_core 0.6.4",
]
[[package]]
@@ -2398,7 +2430,7 @@ dependencies = [
"serde_json",
"sha2",
"smallvec",
- "thiserror 2.0.11",
+ "thiserror",
"tokio",
"tokio-stream",
"tracing",
@@ -2467,14 +2499,14 @@ dependencies = [
"md-5",
"memchr",
"once_cell",
- "rand",
+ "rand 0.8.5",
"serde",
"serde_json",
"sha2",
"smallvec",
"sqlx-core",
"stringprep",
- "thiserror 2.0.11",
+ "thiserror",
"tracing",
"whoami",
]
@@ -2557,7 +2589,7 @@ dependencies = [
"sqlx",
"taler-common",
"taler-test-utils",
- "thiserror 2.0.11",
+ "thiserror",
"tokio",
"tracing",
"tracing-subscriber",
@@ -2576,7 +2608,7 @@ dependencies = [
"glob",
"indexmap 2.7.1",
"jiff",
- "rand",
+ "rand 0.9.0",
"serde",
"serde_json",
"serde_path_to_error",
@@ -2584,7 +2616,7 @@ dependencies = [
"serde_with",
"sqlx",
"tempfile",
- "thiserror 2.0.11",
+ "thiserror",
"tokio",
"tracing",
"tracing-subscriber",
@@ -2616,7 +2648,7 @@ checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704"
dependencies = [
"cfg-if",
"fastrand",
- "getrandom",
+ "getrandom 0.2.15",
"once_cell",
"rustix",
"windows-sys 0.59.0",
@@ -2624,31 +2656,11 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
-dependencies = [
- "thiserror-impl 1.0.69",
-]
-
-[[package]]
-name = "thiserror"
version = "2.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc"
dependencies = [
- "thiserror-impl 2.0.11",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "thiserror-impl",
]
[[package]]
@@ -2924,9 +2936,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
[[package]]
name = "unicode-ident"
-version = "1.0.15"
+version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243"
+checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034"
[[package]]
name = "unicode-normalization"
@@ -3023,6 +3035,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
+name = "wasi"
+version = "0.13.3+wasi-0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2"
+dependencies = [
+ "wit-bindgen-rt",
+]
+
+[[package]]
name = "wasite"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3338,6 +3359,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
+name = "wit-bindgen-rt"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
name = "write16"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3386,7 +3416,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
dependencies = [
"byteorder",
- "zerocopy-derive",
+ "zerocopy-derive 0.7.35",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.8.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a367f292d93d4eab890745e75a778da40909cab4d6ff8173693812f79c4a2468"
+dependencies = [
+ "zerocopy-derive 0.8.14",
]
[[package]]
@@ -3401,6 +3440,17 @@ dependencies = [
]
[[package]]
+name = "zerocopy-derive"
+version = "0.8.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3931cb58c62c13adec22e38686b559c86a30565e16ad6e8510a337cedc611e1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "zerofrom"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/Cargo.toml b/Cargo.toml
@@ -15,6 +15,7 @@ thiserror = "2.0"
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_path_to_error = "0.1"
+serde_urlencoded = "0.7"
tokio = { version = "1.42", features = ["macros"] }
axum = "0.8"
sqlx = { version = "0.8", default-features = false }
@@ -29,4 +30,5 @@ tempfile = "3.15"
taler-common = { path = "common/taler-common" }
taler-api = { path = "common/taler-api" }
taler-test-utils = { path = "common/taler-test-utils" }
-anyhow = "1"
-\ No newline at end of file
+anyhow = "1"
+rand = "0.9"
+\ No newline at end of file
diff --git a/adapter/taler-magnet-bank-adapter/Cargo.toml b/adapter/taler-magnet-bank-adapter/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-rand_core = { version = "*" }
+rand_core = { version = "0.6.4" }
reqwest = { version = "0.12", default-features = false, features = [
"json",
"native-tls",
@@ -16,7 +16,6 @@ spki = "0.7.3"
base64 = "0.22"
form_urlencoded = "1.2"
percent-encoding = "2.3"
-serde_urlencoded = "0.7.1"
passterm = "2.0"
sqlx = { workspace = true, features = [
"postgres",
@@ -30,6 +29,7 @@ taler-api.workspace = true
clap.workspace = true
serde.workspace = true
serde_path_to_error.workspace = true
+serde_urlencoded.workspace = true
thiserror.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true
diff --git a/adapter/taler-magnet-bank-adapter/src/dev.rs b/adapter/taler-magnet-bank-adapter/src/dev.rs
@@ -129,7 +129,8 @@ pub async fn dev(cfg: Config, cmd: DevCmd) -> anyhow::Result<()> {
&full.receiver_name,
&creditor.number,
)
- .await?.tx;
+ .await?
+ .tx;
client
.sign_tx(
&keys.signing_key,
diff --git a/adapter/taler-magnet-bank-adapter/src/worker.rs b/adapter/taler-magnet-bank-adapter/src/worker.rs
@@ -70,7 +70,7 @@ impl Worker<'_> {
_reason: &str,
) -> Result<(), WorkerError> {
// TODO bounce in db
- let res = db::register_tx_in(db, &tx_in, &None).await?;
+ let res = db::register_tx_in(db, tx_in, &None).await?;
match res {
AddIncomingResult::Success(registered_tx) => {
if registered_tx.new {
@@ -155,7 +155,7 @@ impl Worker<'_> {
}
/// Create and sign a forint transfer
- pub async fn create_tx<'a>(&mut self, tx: &Initiated, now: &Zoned) -> WorkerResult {
+ pub async fn create_tx(&mut self, tx: &Initiated, now: &Zoned) -> WorkerResult {
debug!("create tx {tx}");
assert_eq!(tx.amount.frac, 0);
let date = now.date();
@@ -170,7 +170,8 @@ impl Worker<'_> {
&tx.creditor.name,
&tx.creditor.number,
)
- .await?.tx;
+ .await?
+ .tx;
debug!("created tx {}", info.code);
// TODO handle API errors gracefully
fail_point("submit-success");
@@ -196,7 +197,7 @@ impl Worker<'_> {
// Sign initiated transaction, on failure we will retry
self.client
.sign_tx(
- &self.key,
+ self.key,
self.account_number,
tx_code,
amount,
diff --git a/common/taler-api/benches/subject.rs b/common/taler-api/benches/subject.rs
@@ -68,7 +68,7 @@ fn parser(c: &mut Criterion) {
c.bench_function(name, |b| {
b.iter(|| {
for case in cases {
- parse_incoming_unstructured(black_box(case.as_ref()));
+ parse_incoming_unstructured(black_box(case.as_ref())).ok();
}
})
});
diff --git a/common/taler-common/Cargo.toml b/common/taler-common/Cargo.toml
@@ -5,15 +5,15 @@ edition = "2021"
[dependencies]
serde_with = "3.11.0"
-rand = "0.8"
-serde_urlencoded = "0.7"
glob = "0.3"
indexmap = "2.7"
+rand.workspace = true
tempfile.workspace = true
jiff.workspace = true
serde.workspace = true
serde_json = { workspace = true, features = ["raw_value"] }
serde_path_to_error.workspace = true
+serde_urlencoded.workspace = true
url.workspace = true
thiserror.workspace = true
fastrand.workspace = true
diff --git a/common/taler-common/src/cli.rs b/common/taler-common/src/cli.rs
@@ -41,14 +41,14 @@ impl ConfigCmd {
option,
filename,
} => {
- let sect = cfg.section(§ion);
+ let sect = cfg.section(section);
if *filename {
sect.path(option).require()?
} else {
sect.str(option).require()?
}
}
- ConfigCmd::Pathsub { path_expr } => cfg.pathsub(&path_expr, 0)?,
+ ConfigCmd::Pathsub { path_expr } => cfg.pathsub(path_expr, 0)?,
ConfigCmd::Dump => cfg.to_string(),
};
println!("{}", out);
diff --git a/common/taler-common/src/config.rs b/common/taler-common/src/config.rs
@@ -584,7 +584,7 @@ impl Display for Config {
for (key, value) in values {
writeln!(f, "{key} = {value}")?;
}
- writeln!(f, "")?;
+ writeln!(f)?;
}
Ok(())
}