From b22d32b9510390a5c93dde2cd7ec9d0452957297 Mon Sep 17 00:00:00 2001 From: timvisee Date: Sat, 16 Mar 2024 13:26:03 +0100 Subject: [PATCH] Upgrade toml dependency --- Cargo.lock | 69 +++++++++++++++++++++++++++++++++++++++++++++++++-- Cargo.toml | 2 +- src/config.rs | 4 +-- 3 files changed, 70 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6d95411..30df78b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -382,6 +382,12 @@ dependencies = [ "termcolor", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "err-derive" version = "0.3.1" @@ -569,6 +575,12 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + [[package]] name = "hermit-abi" version = "0.3.9" @@ -610,6 +622,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "indexmap" +version = "2.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +dependencies = [ + "equivalent", + "hashbrown", +] + [[package]] name = "inotify" version = "0.7.1" @@ -1301,6 +1323,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + [[package]] name = "shlex" version = "1.3.0" @@ -1462,11 +1493,36 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.11" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +checksum = "af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e" dependencies = [ "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] @@ -1785,6 +1841,15 @@ version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +dependencies = [ + "memchr", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" diff --git a/Cargo.toml b/Cargo.toml index 66fe958..9208cc4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,7 +73,7 @@ tokio = { version = "1", default-features = false, features = [ "sync", "fs", ] } -toml = "0.5" +toml = "0.8" version-compare = "0.2" # Feature: rcon diff --git a/src/config.rs b/src/config.rs index 150a932..ee40aaf 100644 --- a/src/config.rs +++ b/src/config.rs @@ -108,8 +108,8 @@ pub struct Config { impl Config { /// Load configuration from file. pub fn load(path: PathBuf) -> Result { - let data = fs::read(&path)?; - let mut config: Config = toml::from_slice(&data)?; + let data = fs::read_to_string(&path)?; + let mut config: Config = toml::from_str(&data).map_err(io::Error::other)?; // Show warning if config version is problematic match &config.config.version {