diff --git a/Cargo.lock b/Cargo.lock index 99ffe8a..2046005 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "ahash" @@ -514,7 +514,7 @@ dependencies = [ "shellexpand", "simplelog", "tokio", - "toml 0.9.11+spec-1.1.0", + "toml 1.1.2+spec-1.1.0", "watchexec", "watchexec-events", "watchexec-filterer-globset", @@ -750,7 +750,7 @@ dependencies = [ "gix-utils", "itoa", "thiserror 2.0.18", - "winnow", + "winnow 0.7.14", ] [[package]] @@ -770,7 +770,7 @@ dependencies = [ "smallvec", "thiserror 2.0.18", "unicode-bom", - "winnow", + "winnow 0.7.14", ] [[package]] @@ -891,7 +891,7 @@ dependencies = [ "itoa", "smallvec", "thiserror 2.0.18", - "winnow", + "winnow 0.7.14", ] [[package]] @@ -924,7 +924,7 @@ dependencies = [ "gix-validate", "memmap2", "thiserror 2.0.18", - "winnow", + "winnow 0.7.14", ] [[package]] @@ -1874,9 +1874,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.0.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ "serde_core", ] @@ -2235,17 +2235,17 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.11+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46" +checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ "indexmap", "serde_core", - "serde_spanned 1.0.4", - "toml_datetime 0.7.5+spec-1.1.0", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", "toml_writer", - "winnow", + "winnow 1.0.1", ] [[package]] @@ -2259,9 +2259,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] @@ -2277,16 +2277,16 @@ dependencies = [ "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", - "winnow", + "winnow 0.7.14", ] [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow", + "winnow 1.0.1", ] [[package]] @@ -2297,9 +2297,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "toml_writer" -version = "1.0.6+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "tracing" @@ -2793,6 +2793,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" + [[package]] name = "wit-bindgen" version = "0.51.0" diff --git a/Cargo.toml b/Cargo.toml index 9d05c76..1f2d889 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,7 +26,7 @@ serde = { version = "1.*", features = ["derive"] } shellexpand = "2.*" simplelog = "0.12.*" tokio = "1.*" -toml = "0.9.6" +toml = "1" watchexec = { version = "8", optional = true } watchexec-events = { version = "6.0.0", optional = true } watchexec-filterer-globset = { version = "8", optional = true } diff --git a/src/config.rs b/src/config.rs index 4bb1f96..aef922b 100644 --- a/src/config.rs +++ b/src/config.rs @@ -771,6 +771,33 @@ mod test { ); } + #[test] + fn inline_table_with_newlines() { + // TOML 1.1 allows inline tables to span multiple lines (trailing commas + // also permitted). This requires toml crate >= 0.10 which enables TOML + // 1.1 parsing by default. + let local: LocalConfig = toml::from_str( + r#" + packages = ['mypackage'] + + [variables] + myvar = { + key = "value", + } + "#, + ) + .unwrap(); + + assert_eq!( + local.variables.get("myvar"), + Some(&toml::Value::Table( + [("key".to_string(), toml::Value::String("value".to_string()))] + .into_iter() + .collect() + )) + ); + } + #[test] fn setting_default_target_type_automatic() { let global: GlobalConfig = toml::from_str(