Merge "Update toml to 0.8.19" into main
diff --git a/crates/toml/.android-checksum.json b/crates/toml/.android-checksum.json
index 2fa6ba0..244af8b 100644
--- a/crates/toml/.android-checksum.json
+++ b/crates/toml/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"ed1c18522ca0521813573494f165af5d269b35868ff6340b8826bed5a3e9de5c","Android.bp":"807148b0d8d65b5dc7f1055fbe6b3c1738863e3bda709369636f58a7e5dafc75","Cargo.lock":"e0ebe89b99a999b15f65db29d4729b6e5151ad717a2e248a6b6ca32a94b68d16","Cargo.toml":"1ec6907d38acbff1a663f08c4828d68f69142a044a2c0ba6cc4cd87ccb5444ae","LICENSE":"ca8c108c730bc014297428bf42afe28d87791ecc5e7c6302233ab041bc20815b","LICENSE-APACHE":"e4493d0badd82c469fd611cf0c31ea8a74cce85c52c4a4c2579e344226f0602e","LICENSE-MIT":"538f704e6bc384de6dd775d81e9df89f9d718f0e2808a24a789eaa03beb129d3","METADATA":"5fd1c52b74cf5b1f9989a53f3dfb31dae007b7bc54735769863113caf8f2ed22","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"88c1bcea6c3dc175ab2ef2e6b99ba78f98d9470a93f115f4f0da1205ef71428a","cargo_embargo.json":"239d8e8ee49ab8854b0c7e906cc1c6b0f2bdbd081cb19156345a353c69bf93ff","examples/decode.rs":"16df4cdb0d28f075eae95d480fa3bfcf4729b33720d77358133c181ea7b05939","examples/enum_external.rs":"1ccc93149e9157e04e964bb844aaa369aaf6e449208594f2b2df76d885f14be1","examples/toml2json.rs":"aec95608ef2ef5c655404e5ab27918dad3a94a251ab67c8a385a8ac8a3dad488","patches/LICENSE.patch":"67bfc7706d9a957a3b06ec11a323c95eb50826cec49c1749ed0fc3581bef2299","src/de.rs":"1c5bbd16e20d7817fd57b2a75a3b8821c3f18d09b9003ab72098b49ff1463e7b","src/edit.rs":"fa7d7c416425e41ead117721ded65aa202647acced6e4a0d2adb522184242068","src/fmt.rs":"24069082b6fab0cde8516df4e8fd40fdb4d88bda77a5cd7a4b32326a7cb6e99c","src/lib.rs":"98ff092c5c5efdb6de4105c827dc4e2e8cba2b11d925548cc9ba048b736a77fa","src/macros.rs":"8346a51d6490052ed75246d034aaf5b19141c89d35f25ee58014fc21b096e3d5","src/map.rs":"1fc8f234df86a651a88260635a38428c60efd7ab470f80fd58fdb879be7a4a5a","src/ser.rs":"2a96efc34e9d5338321252c3101bced8941015472b521475d11e68fc0d5631c4","src/table.rs":"faa6de32a49afa6dba904e7954d132a7ac14eaf14af2b96d507339c4654c9b53","src/value.rs":"92348270c77aba2a1debdbaaf538751edbd739b2816e5b5a6640248580d29ed4","tests/decoder.rs":"92dd7b7ecb62486ce629f642822dbfe58baa4c9884e80a711e475bc7b73e98e6","tests/decoder_compliance.rs":"a07e99d9d125a460a048d7340ce3c9214ac7d9c93f982c4f827bb0caafb26803","tests/encoder.rs":"1e538845c38f8731474a9b5339c03c1916d421043d622539e43942e2b815e1b0","tests/encoder_compliance.rs":"587f8a8a7faf3f81b6bbef4c6a5ecf723fcea0b82b706db7d3cdb8f251aef804","tests/testsuite/de_errors.rs":"8167099b34ea9fdbc24934dbc56f7c1634798c29108d8e9348524a0e29ac07f9","tests/testsuite/display.rs":"07f35baf286775b08070f3319eaa205368ff495b8d3af06c84a4d1049845273a","tests/testsuite/display_tricky.rs":"39d3c1182376517f575df3897bfdc4c9478d442c3d2ddf49c13a1a90ffedf611","tests/testsuite/enum_external_deserialize.rs":"49cdcebf6aa274745f3f7d6eeb35905d27948339a30d1dabd7d286e929f5ac74","tests/testsuite/float.rs":"c2bfceade5ee18e87bef6e20696b533bff3249441b4d3d2820c54d874542868c","tests/testsuite/formatting.rs":"39796affb2f0d5dc28b536b5eeea7800944e1cbbd1f20ab8a0fb01a9e541e484","tests/testsuite/macros.rs":"d02c01593fb379f42da155cbf26054061328feb485966207ead8329ad93b9552","tests/testsuite/main.rs":"b2b919ee6c39999e014793461677f5e3342f4352cfdccff871ca6e295ce62613","tests/testsuite/pretty.rs":"2a7dac71a9584e783b45444ba16310b4b016f96709bd8e21b04f97f35a9f1106","tests/testsuite/serde.rs":"baa8c35ed0bfaf295b719179dccf39092e1a58622986c594a4ad129e18d6944a","tests/testsuite/spanned.rs":"a064ba02c8e473d950429ad72cbafff62f70def9a01cbf3ada9e6f6266d80c83","tests/testsuite/spanned_impls.rs":"019aedd5e31d72edd1a1697b745f5c2fecf28a71204810a9a74f03b30c5662ac","tests/testsuite/tables_last.rs":"4774c76ed7569f9bc80ad0f84708ebc4f156a8c2c69c1722b155ecefb1fd235d"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"8d998aa2aafc5b97bac79ef3720ca2b3e8721cd907ce4e53ced21043862a9564","Android.bp":"11d60a1dbab17e9a52a211ab4236e1d0ab217aebb39c23537b6e5f707f5c483a","Cargo.lock":"a87a8d00b7e1d43b03ec61b564d77941567fbaa6c7a132c3b583f7681bc39911","Cargo.toml":"0537aaa2e1ea61c9491175c67884623158200fa33403bc7dd2aa92dd64cb7b58","LICENSE":"ca8c108c730bc014297428bf42afe28d87791ecc5e7c6302233ab041bc20815b","LICENSE-APACHE":"e4493d0badd82c469fd611cf0c31ea8a74cce85c52c4a4c2579e344226f0602e","LICENSE-MIT":"538f704e6bc384de6dd775d81e9df89f9d718f0e2808a24a789eaa03beb129d3","METADATA":"f4e9e6126788c7568fb074f760737bcba4f1352ae8f6c11a50a4d38892908f59","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"88c1bcea6c3dc175ab2ef2e6b99ba78f98d9470a93f115f4f0da1205ef71428a","cargo_embargo.json":"239d8e8ee49ab8854b0c7e906cc1c6b0f2bdbd081cb19156345a353c69bf93ff","examples/decode.rs":"16df4cdb0d28f075eae95d480fa3bfcf4729b33720d77358133c181ea7b05939","examples/enum_external.rs":"1ccc93149e9157e04e964bb844aaa369aaf6e449208594f2b2df76d885f14be1","examples/toml2json.rs":"7d8b8b1a41a7e6bdab780747c2b827a02279123a0660c692c75d1d8cb1478d81","patches/LICENSE.patch":"67bfc7706d9a957a3b06ec11a323c95eb50826cec49c1749ed0fc3581bef2299","src/de.rs":"c7422c2db6e13e2a6dc76e527a8dffef0c3509076c89a8323ca8e88a0025c05c","src/edit.rs":"fa7d7c416425e41ead117721ded65aa202647acced6e4a0d2adb522184242068","src/fmt.rs":"f2ebad7e60510f9c392f1d018af07e3c5a953106e0e826d9267f801a4de2876c","src/lib.rs":"a848ae0391d55ab2417788215df587a1df4e7504b5d924cc4839ca51951a6ef3","src/macros.rs":"7ca07c3aede6b376e5abc709bbb89dfe4559ae95efec1de0522736342d9d2ea8","src/map.rs":"4edddb4dbd3ab5ed59578ee5871b0b0cd32f3989c3123b64f6705b7990548abb","src/ser.rs":"d127e7d56281a28b919d1fef539a946ead205aa7a4b98087b00fc7e295cb2189","src/table.rs":"faa6de32a49afa6dba904e7954d132a7ac14eaf14af2b96d507339c4654c9b53","src/value.rs":"81466e4b3ac24cb848519da5028cd0526639ff5903b0b0e2db5f7df07d1f48f2","tests/decoder.rs":"04ec9cc023c26e03c4e3b09a45b1f1df5d2db74800558bbd6bdda675a5485af3","tests/decoder_compliance.rs":"a07e99d9d125a460a048d7340ce3c9214ac7d9c93f982c4f827bb0caafb26803","tests/encoder.rs":"8041caf86be24bfa88525aa042da7351c4b5309d7563f0c4a3802ddea32440b2","tests/encoder_compliance.rs":"587f8a8a7faf3f81b6bbef4c6a5ecf723fcea0b82b706db7d3cdb8f251aef804","tests/testsuite/de_errors.rs":"4c1507c90789ed16221183b8a2dadfedcd792496beb87a8559dfa182333fa14d","tests/testsuite/display.rs":"a408a3147cd33151de032f539c503e788815c6877629aaff4155683a19fbf50a","tests/testsuite/display_tricky.rs":"8fd273503b20fee0b647f6d6203db194e921b36dd14e7ea9b66a7932c0c52570","tests/testsuite/enum_external_deserialize.rs":"21db0f2a324b27ca1968f1e6da67323d244e173599c0d98ee5d7a9b63bfb0703","tests/testsuite/float.rs":"c2bfceade5ee18e87bef6e20696b533bff3249441b4d3d2820c54d874542868c","tests/testsuite/formatting.rs":"bde71ab906aa662548410f158a995865f21468568ef7778f101a5d4656f0f147","tests/testsuite/macros.rs":"0e2b6f9f91ae632b8c599fc6ee6d1310cf263c7b3eac45d749fced4d76312814","tests/testsuite/main.rs":"b2b919ee6c39999e014793461677f5e3342f4352cfdccff871ca6e295ce62613","tests/testsuite/pretty.rs":"5f14338143929d733c37e51c98cf9ae69325d23d64e830fc8b34f0e840a4883c","tests/testsuite/serde.rs":"47e86e84fe0b8eb2ca244e6279e9cba5bd1a6d2e1c71fc82aa5d9ce235706f0e","tests/testsuite/spanned.rs":"22601496dc92f9805bd61348bbff7b39e9bf5082b932230c2bb3838e08c8491e","tests/testsuite/spanned_impls.rs":"019aedd5e31d72edd1a1697b745f5c2fecf28a71204810a9a74f03b30c5662ac","tests/testsuite/tables_last.rs":"530915b4b0999eaa711036fc0004ed5fc54f9f441a312de7220507de4f111688"}}
\ No newline at end of file
diff --git a/crates/toml/.cargo-checksum.json b/crates/toml/.cargo-checksum.json
index 5cf73e9..94e482f 100644
--- a/crates/toml/.cargo-checksum.json
+++ b/crates/toml/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.lock":"e9ac6868f92eaf3b5e08a5aee959fe88371579dfa2cd3b174767a697078ca874","Cargo.toml":"29bd75a7c5312f6925a1d1d23e926d348110f02cbf4d9a71e167b44bcbb4015f","LICENSE-APACHE":"c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"a915ead738822da2d74b883c7519d8e558299286bb823e26c7fdece901c3267e","examples/decode.rs":"ebb019364720589b634fa47a3fc4c8ca7ae14c9a6df8c89cd086e421d442cd77","examples/enum_external.rs":"4878e249aa095264c7824fc7b6fd30f9b0ec6891b16fff734a0490d906e1abbe","examples/toml2json.rs":"f69cf930e7e16f57288c27a57de5bf8e4f991abb483114a6c226ac5a3bddef44","src/de.rs":"faf32d0e29f8140c1b62f175dffa3ac4ffbf13034b74222a9c26d0477cd2e2a3","src/edit.rs":"52f1959a6e5c177097372ea04439662262960f2eb41c2b9ef0ce9ce77ed43f60","src/fmt.rs":"eb19258f004a403da7fd310b30c8964bdf5867ecd145bf4fcba708af51cb378f","src/lib.rs":"21982e43114486005dd9a1d31b7e5da425b3fea0e724a437d89fe42d674b4696","src/macros.rs":"a2f320170bfc8e59e5dfda129bb953a15d8efc6b622c3894dce87db541ede413","src/map.rs":"7a1b97ee1a2ab3fa933d24497066191a6760d118e6e4c8ba42cc891e4668c177","src/ser.rs":"f9c91c2f70c42152531143ae231c6130e4ce930c97b378011e5595ea123ff31b","src/table.rs":"7402b17dbb8d956a321af74df6f62b3eed0b7e500b7faa22337633857bf20fa6","src/value.rs":"1fb23e59a61456a3ec5fa1727674b28eb1141e9e056cdeb794ec2647c4a55b71","tests/decoder.rs":"114e708adc1467c03212e52e2ffef42d08233ab74f69c553a6db73ddbb874414","tests/decoder_compliance.rs":"b0ed26b0762d8dfc23532efb724789366ca343f7354a76216b3fb426c6915e5a","tests/encoder.rs":"4c2430ad514fe64e28b89d0bd7ad7d299fbda8df903304ddcda704ce5db20382","tests/encoder_compliance.rs":"eeaa92f9cb4ee008830006e78277dfea9c041bc923a0ef5538d79aeb95f022c0","tests/testsuite/de_errors.rs":"1bc8521181f9fbe884db3313a8e8a044b4a1cf4b8956530a3cc8be9bcb5468f8","tests/testsuite/display.rs":"164de8f7108ce1055159a19884d23f770bd25cf0ead6b23f6ff4340931c7afc5","tests/testsuite/display_tricky.rs":"9806743d670e5cc46ee0ffda3f4c1f8ac63ee1e702250f07b7cd2098750d25d1","tests/testsuite/enum_external_deserialize.rs":"28b4705d904b58a973ef27c6cdc948f8d404105f98a55efa111cce9e7b4b1a67","tests/testsuite/float.rs":"6be604bb11adb315ad01fdf7117db620508d38caedaaea63e777d7ed2e5e4973","tests/testsuite/formatting.rs":"3b279ab1f24ebeb07537764107c42be9a84731ead1a88596785186777aafd1ee","tests/testsuite/macros.rs":"cf99ad3b191b68e044d0b01aa01ae959ed8b98ae466b9b0491bae1939af3832c","tests/testsuite/main.rs":"4e40c82147ccfc7094f2c4795b51b575c7d231a7da75814a08fd8e0c52d93f8b","tests/testsuite/pretty.rs":"e03df1f3ebe5bb98f6cc0888f0c6bcdcdb92c9c7ea2cd5acaa33ca751bf260e7","tests/testsuite/serde.rs":"a292fcdf4f2b9d1cd2d5476db770d8d5a15fdc990c0dada4a02e3515733cb5db","tests/testsuite/spanned.rs":"b7522afd8101ba5dd539118a43bccefef66fedef41926d9515f67590961ac7e3","tests/testsuite/spanned_impls.rs":"666c65679365451f67234d50bb3198ac52418ad7ef1dae6916faba78f92c9d02","tests/testsuite/tables_last.rs":"42271f9df94b28f36b934686d4a5c6196140a2975733d1344b6415cb9f1b92ed"},"package":"9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"}
\ No newline at end of file
+{"files":{"Cargo.lock":"f4b3b23a7222cc98e424c53c8b1c7db2542b4deece22b970b4041d83f5f226c7","Cargo.toml":"aaad74d52b869b6494de6a2ea5b9bda57ae06248a3adb67f2332a8b82758ca6d","LICENSE-APACHE":"c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"a915ead738822da2d74b883c7519d8e558299286bb823e26c7fdece901c3267e","examples/decode.rs":"ebb019364720589b634fa47a3fc4c8ca7ae14c9a6df8c89cd086e421d442cd77","examples/enum_external.rs":"4878e249aa095264c7824fc7b6fd30f9b0ec6891b16fff734a0490d906e1abbe","examples/toml2json.rs":"ef8a783e525264faec4e6c6087a37c6310b606119a7a5785548e8981ea129ed2","src/de.rs":"bd3c1b35e5bdc796d1cbff1f2bdd4e6d4c3a4ef9f34c7dcb775ce8236e45b965","src/edit.rs":"52f1959a6e5c177097372ea04439662262960f2eb41c2b9ef0ce9ce77ed43f60","src/fmt.rs":"b6b14bcfaaf6a283d0bdc7b43d9d13c127cf94c9de41efb4a3a9e1eb02bdc799","src/lib.rs":"78c26d36a5c2b888470f8eaacede1841662edf372143b76af0283a1fc1f9f528","src/macros.rs":"a7214ed97b1c15391748a3d5b904b31963130ee19ecd6ed3dc705649737f3b29","src/map.rs":"18a0bf5677441514d0a9dbf29beeaf7f797f95a1ba566d845f2b90e3b14722c8","src/ser.rs":"b5cbb35af51ffb8975306e76df19ea64951bc97a28857d696aaeb2251cdcd93f","src/table.rs":"7402b17dbb8d956a321af74df6f62b3eed0b7e500b7faa22337633857bf20fa6","src/value.rs":"74c0596230bcf88483005a8907f875e32f5eab29d538cd78ad39031919884596","tests/decoder.rs":"3036f5963c8c547dc47121188a8b7ebaacb154025ca641f3281a3881bdcf7605","tests/decoder_compliance.rs":"b0ed26b0762d8dfc23532efb724789366ca343f7354a76216b3fb426c6915e5a","tests/encoder.rs":"06d4325dc35f4fd40571d8ae50fb86c0ca0bb216aa407497950d01097fdbf043","tests/encoder_compliance.rs":"eeaa92f9cb4ee008830006e78277dfea9c041bc923a0ef5538d79aeb95f022c0","tests/testsuite/de_errors.rs":"2ceb148f1f80ac42b88804dae7cca02c724010917570a08f484e5a7ccd922d95","tests/testsuite/display.rs":"1ae6faac1f1a9a53b14ce0c0bd2c16618d0e42afbf6f92d8107ca944c9abac57","tests/testsuite/display_tricky.rs":"e1b5007506e4f52eb73024c889b36f54694e9d955a737cd2e48a99657691fe21","tests/testsuite/enum_external_deserialize.rs":"4136d1c42dd4c255bb4d6b01e4072c6575a3a2f93d8da31aa18b954b321b3aa7","tests/testsuite/float.rs":"6be604bb11adb315ad01fdf7117db620508d38caedaaea63e777d7ed2e5e4973","tests/testsuite/formatting.rs":"58d469e194e34f04e526db62cebd381dd096115d81b98a4dcbe8d801fc250142","tests/testsuite/macros.rs":"31a083541fab24554fce1f8529f047af6f20f25a5ffa3e9a9b115f5a8ef23080","tests/testsuite/main.rs":"4e40c82147ccfc7094f2c4795b51b575c7d231a7da75814a08fd8e0c52d93f8b","tests/testsuite/pretty.rs":"596c42698dcd727d1111689d64bad925b7111c536a7e608c75e7b8d82c26b413","tests/testsuite/serde.rs":"84355f892999dc4105752a8835664b8e696830fe1793d81bad7dcfda745dfa3f","tests/testsuite/spanned.rs":"6008e2c9fd82e4df6f307f88bd1169b1c0413f75d0f3975fcce05ebdd9f6094a","tests/testsuite/spanned_impls.rs":"666c65679365451f67234d50bb3198ac52418ad7ef1dae6916faba78f92c9d02","tests/testsuite/tables_last.rs":"0fdc71c450d6187a2dfc2de84d213eb867db9673f84e655c2322f95615a41a87"},"package":"a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"}
\ No newline at end of file
diff --git a/crates/toml/Android.bp b/crates/toml/Android.bp
index 97ce950..560ad03 100644
--- a/crates/toml/Android.bp
+++ b/crates/toml/Android.bp
@@ -17,7 +17,7 @@
name: "libtoml",
crate_name: "toml",
cargo_env_compat: true,
- cargo_pkg_version: "0.8.10",
+ cargo_pkg_version: "0.8.19",
crate_root: "src/lib.rs",
edition: "2021",
features: [
diff --git a/crates/toml/Cargo.lock b/crates/toml/Cargo.lock
index 1cc97be..84fb9f5 100644
--- a/crates/toml/Cargo.lock
+++ b/crates/toml/Cargo.lock
@@ -4,88 +4,102 @@
[[package]]
name = "aho-corasick"
-version = "0.7.19"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
dependencies = [
"memchr",
]
[[package]]
name = "anstream"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6342bd4f5a1205d7f41e94a41a901f5647c938cdfa96036338e8533c9d6c2450"
+checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
dependencies = [
"anstyle",
"anstyle-parse",
"anstyle-query",
- "anstyle-wincon",
+ "anstyle-wincon 1.0.2",
"colorchoice",
"is-terminal",
"utf8parse",
]
[[package]]
-name = "anstyle"
-version = "1.0.0"
+name = "anstream"
+version = "0.6.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon 3.0.3",
+ "colorchoice",
+ "is_terminal_polyfill",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
[[package]]
name = "anstyle-parse"
-version = "0.2.0"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
]
[[package]]
name = "anstyle-wincon"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
dependencies = [
"anstyle",
"windows-sys 0.48.0",
]
[[package]]
-name = "autocfg"
-version = "1.1.0"
+name = "anstyle-wincon"
+version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bstr"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
dependencies = [
- "memchr",
+ "anstyle",
+ "windows-sys 0.52.0",
]
[[package]]
-name = "cc"
-version = "1.0.73"
+name = "autocfg"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "serde",
+]
[[package]]
name = "cfg-if"
@@ -95,147 +109,112 @@
[[package]]
name = "chrono"
-version = "0.4.22"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
- "num-integer",
"num-traits",
]
[[package]]
name = "clap"
-version = "4.0.32"
+version = "4.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39"
+checksum = "fb690e81c7840c0d7aade59f242ea3b41b9bc27bcd5997890e7702ae4b32e487"
dependencies = [
- "bitflags",
+ "clap_builder",
"clap_derive",
- "clap_lex",
- "is-terminal",
"once_cell",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ed2e96bc16d8d740f6f48d663eddf4b8a0983e79210fd55479b7bcd0a69860e"
+dependencies = [
+ "anstream 0.3.2",
+ "anstyle",
+ "clap_lex",
"strsim",
- "termcolor",
]
[[package]]
name = "clap_derive"
-version = "4.0.21"
+version = "4.3.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014"
+checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
dependencies = [
"heck",
- "proc-macro-error",
"proc-macro2",
"quote",
- "syn 1.0.105",
+ "syn",
]
[[package]]
name = "clap_lex"
-version = "0.3.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8"
-dependencies = [
- "os_str_bytes",
-]
+checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
[[package]]
name = "colorchoice"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc"
-dependencies = [
- "cfg-if",
- "once_cell",
-]
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
[[package]]
name = "equivalent"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
-name = "errno"
-version = "0.3.1"
+name = "escape8259"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "ba4f4911e3666fcd7826997b4745c8224295a6f3072f1418c3067b97a67557ee"
dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
+ "rustversion",
]
[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
name = "globset"
-version = "0.4.9"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
dependencies = [
"aho-corasick",
"bstr",
- "fnv",
"log",
- "regex",
+ "regex-automata",
+ "regex-syntax",
]
[[package]]
name = "hashbrown"
-version = "0.14.0"
+version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]]
name = "heck"
-version = "0.4.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "hermit-abi"
-version = "0.1.19"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
[[package]]
name = "ignore"
-version = "0.4.18"
+version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d"
+checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492"
dependencies = [
- "crossbeam-utils",
"globset",
"lazy_static",
"log",
@@ -268,41 +247,39 @@
[[package]]
name = "indexmap"
-version = "2.0.0"
+version = "2.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
dependencies = [
"equivalent",
"hashbrown",
]
[[package]]
-name = "io-lifetimes"
-version = "1.0.3"
+name = "is-terminal"
+version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
dependencies = [
+ "hermit-abi",
"libc",
- "windows-sys 0.42.0",
+ "windows-sys 0.52.0",
]
[[package]]
-name = "is-terminal"
-version = "0.4.7"
+name = "is_terminal_polyfill"
+version = "1.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+checksum = "b52b2de84ed0341893ce61ca1af04fa54eea0a764ecc38c6855cc5db84dc1927"
dependencies = [
- "hermit-abi 0.3.1",
- "io-lifetimes",
- "rustix",
- "windows-sys 0.48.0",
+ "is-terminal",
]
[[package]]
name = "itoa"
-version = "1.0.3"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
name = "lazy_static"
@@ -312,41 +289,33 @@
[[package]]
name = "libc"
-version = "0.2.142"
+version = "0.2.154"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
[[package]]
name = "libtest-mimic"
-version = "0.6.0"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7b603516767d1ab23d0de09d023e62966c3322f7148297c35cf3d97aa8b37fa"
+checksum = "cc0bda45ed5b3a2904262c1bb91e526127aa70e7ef3758aba2ef93cf896b9b58"
dependencies = [
"clap",
+ "escape8259",
"termcolor",
"threadpool",
]
[[package]]
-name = "linux-raw-sys"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b64f40e5e03e0d54f03845c8197d0291253cdbedfb1cb46b13c2c117554a9f4c"
-
-[[package]]
name = "log"
-version = "0.4.17"
+version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
[[package]]
name = "memchr"
-version = "2.5.0"
+version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
[[package]]
name = "normalize-line-endings"
@@ -355,93 +324,65 @@
checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
name = "num-traits"
-version = "0.2.15"
+version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
dependencies = [
"autocfg",
]
[[package]]
name = "num_cpus"
-version = "1.13.1"
+version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [
- "hermit-abi 0.1.19",
+ "hermit-abi",
"libc",
]
[[package]]
name = "once_cell"
-version = "1.15.0"
+version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"
-
-[[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.105",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-version = "1.0.33"
+version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
dependencies = [
"proc-macro2",
]
[[package]]
name = "regex"
-version = "1.6.0"
+version = "1.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
dependencies = [
"aho-corasick",
"memchr",
@@ -450,29 +391,21 @@
[[package]]
name = "regex-syntax"
-version = "0.6.27"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
[[package]]
-name = "rustix"
-version = "0.37.7"
+name = "rustversion"
+version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d"
-dependencies = [
- "bitflags",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.45.0",
-]
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
[[package]]
name = "ryu"
-version = "1.0.15"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "same-file"
@@ -485,29 +418,29 @@
[[package]]
name = "serde"
-version = "1.0.193"
+version = "1.0.203"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.193"
+version = "1.0.203"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.41",
+ "syn",
]
[[package]]
name = "serde_json"
-version = "1.0.96"
+version = "1.0.119"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+checksum = "e8eddb61f0697cc3989c5d64b452f5488e2b8a60fd7d5076a3045076ffef8cb0"
dependencies = [
"itoa",
"ryu",
@@ -516,26 +449,26 @@
[[package]]
name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
dependencies = [
"serde",
]
[[package]]
name = "similar"
-version = "2.2.0"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ac7f900db32bf3fd12e0117dd3dc4da74bc52ebaac97f39668446d89694803"
+checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640"
[[package]]
name = "snapbox"
-version = "0.4.11"
+version = "0.6.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6bccd62078347f89a914e3004d94582e13824d4e3d8a816317862884c423835"
+checksum = "40e14d10e4c2b4331ac24c33baa5a03e1fbca81c045b285b53b2a612d28569fb"
dependencies = [
- "anstream",
+ "anstream 0.6.14",
"anstyle",
"normalize-line-endings",
"similar",
@@ -544,11 +477,11 @@
[[package]]
name = "snapbox-macros"
-version = "0.3.4"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaaf09df9f0eeae82be96290918520214530e738a7fe5a351b0f24cf77c0ca31"
+checksum = "b1f4c14672714436c09254801c934b203196a51182a5107fb76591c7cc56424d"
dependencies = [
- "anstream",
+ "anstream 0.6.14",
]
[[package]]
@@ -559,20 +492,9 @@
[[package]]
name = "syn"
-version = "1.0.105"
+version = "2.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.41"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269"
+checksum = "bf5be731623ca1a1fb7d8be6f261a3be6d3e2337b8a1f97be944d020c8fcb704"
dependencies = [
"proc-macro2",
"quote",
@@ -581,19 +503,20 @@
[[package]]
name = "termcolor"
-version = "1.1.3"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
dependencies = [
"winapi-util",
]
[[package]]
name = "thread_local"
-version = "1.1.4"
+version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
dependencies = [
+ "cfg-if",
"once_cell",
]
@@ -608,7 +531,7 @@
[[package]]
name = "toml"
-version = "0.8.10"
+version = "0.8.19"
dependencies = [
"indexmap",
"serde",
@@ -623,9 +546,9 @@
[[package]]
name = "toml-test"
-version = "1.0.0"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ec3892835fb31e181a87e1758275a64b0d7c6c9e9618aeb61a647bd487314c0"
+checksum = "f9e26681e9154ffb40044019b6bb374f6ed7fef1e367d3d314f0daf2b00faba9"
dependencies = [
"chrono",
"ryu",
@@ -635,18 +558,18 @@
[[package]]
name = "toml-test-data"
-version = "1.8.0"
+version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6b5bad99e813ce8c67d1d67c9b9f37c8451933f45eae0ab2b3583975f1cc15d"
+checksum = "13bb6bf962107303ade738a8f729f4f92c29b2d84c0772cc376f7001602afa1a"
dependencies = [
"include_dir",
]
[[package]]
name = "toml-test-harness"
-version = "0.4.8"
+version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1be4b8d761dee51b4694e9f1d622a1d7f9c135a8b8265459e16d09ac5b16a05d"
+checksum = "0ad65271b9325d4727b1afb346e2eb4cade8e998797682da4e73b7b6d902f2b2"
dependencies = [
"ignore",
"libtest-mimic",
@@ -656,18 +579,18 @@
[[package]]
name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
dependencies = [
"serde",
]
[[package]]
name = "toml_edit"
-version = "0.22.0"
+version = "0.22.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8dc77def39ce6079c2d0c866cc20848f591b1898f153c9fe7c4f29e1154510b"
+checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
dependencies = [
"indexmap",
"serde",
@@ -678,9 +601,9 @@
[[package]]
name = "unicode-ident"
-version = "1.0.4"
+version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "utf8parse"
@@ -689,75 +612,22 @@
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
name = "walkdir"
-version = "2.3.2"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
dependencies = [
"same-file",
- "winapi",
"winapi-util",
]
[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
name = "winapi-util"
-version = "0.1.5"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets 0.42.1",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -766,128 +636,144 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
]
[[package]]
name = "windows-targets"
-version = "0.42.1"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
]
[[package]]
name = "windows-targets"
-version = "0.48.0"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
dependencies = [
- "windows_aarch64_gnullvm 0.48.0",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm 0.48.0",
- "windows_x86_64_msvc 0.48.0",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
]
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.42.1"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.42.1"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
[[package]]
name = "windows_i686_gnu"
-version = "0.42.1"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
[[package]]
name = "windows_i686_msvc"
-version = "0.42.1"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.42.1"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.42.1"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.42.1"
+version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
[[package]]
name = "winnow"
-version = "0.5.0"
+version = "0.6.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7"
+checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
dependencies = [
"memchr",
]
diff --git a/crates/toml/Cargo.toml b/crates/toml/Cargo.toml
index 77f028d..796cddf 100644
--- a/crates/toml/Cargo.toml
+++ b/crates/toml/Cargo.toml
@@ -11,10 +11,11 @@
[package]
edition = "2021"
-rust-version = "1.69"
+rust-version = "1.65"
name = "toml"
-version = "0.8.10"
+version = "0.8.19"
authors = ["Alex Crichton <[email protected]>"]
+build = false
include = [
"build.rs",
"src/**/*",
@@ -26,6 +27,10 @@
"examples/**/*",
"tests/**/*",
]
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
description = """
A native Rust encoder and decoder of TOML-formatted files and streams. Provides
implementations of the standard Serialize/Deserialize traits for TOML data to
@@ -88,8 +93,13 @@
[Unreleased]: https://github.com/toml-rs/toml/compare/{{tag_name}}...HEAD"""
search = "<!-- next-url -->"
+[lib]
+name = "toml"
+path = "src/lib.rs"
+
[[example]]
name = "decode"
+path = "examples/decode.rs"
required-features = [
"parse",
"display",
@@ -97,6 +107,7 @@
[[example]]
name = "enum_external"
+path = "examples/enum_external.rs"
required-features = [
"parse",
"display",
@@ -104,19 +115,34 @@
[[example]]
name = "toml2json"
+path = "examples/toml2json.rs"
required-features = [
"parse",
"display",
]
[[test]]
+name = "decoder"
+path = "tests/decoder.rs"
+
+[[test]]
name = "decoder_compliance"
+path = "tests/decoder_compliance.rs"
harness = false
[[test]]
+name = "encoder"
+path = "tests/encoder.rs"
+
+[[test]]
name = "encoder_compliance"
+path = "tests/encoder_compliance.rs"
harness = false
+[[test]]
+name = "testsuite"
+path = "tests/testsuite/main.rs"
+
[dependencies.indexmap]
version = "2.0.0"
optional = true
@@ -125,31 +151,31 @@
version = "1.0.145"
[dependencies.serde_spanned]
-version = "0.6.5"
+version = "0.6.7"
features = ["serde"]
[dependencies.toml_datetime]
-version = "0.6.5"
+version = "0.6.8"
features = ["serde"]
[dependencies.toml_edit]
-version = "0.22.0"
+version = "0.22.20"
features = ["serde"]
optional = true
default-features = false
[dev-dependencies.serde]
-version = "1.0.160"
+version = "1.0.199"
features = ["derive"]
[dev-dependencies.serde_json]
-version = "1.0.96"
+version = "1.0.116"
[dev-dependencies.snapbox]
-version = "0.4.11"
+version = "0.6.0"
[dev-dependencies.toml-test-data]
-version = "1.8.0"
+version = "1.11.0"
[dev-dependencies.toml-test-harness]
version = "0.4.8"
@@ -168,3 +194,73 @@
"toml_edit?/parse",
]
preserve_order = ["indexmap"]
+
+[lints.clippy]
+bool_assert_comparison = "allow"
+branches_sharing_code = "allow"
+checked_conversions = "warn"
+collapsible_else_if = "allow"
+create_dir = "warn"
+dbg_macro = "warn"
+debug_assert_with_mut_call = "warn"
+doc_markdown = "warn"
+empty_enum = "warn"
+enum_glob_use = "warn"
+expl_impl_clone_on_copy = "warn"
+explicit_deref_methods = "warn"
+explicit_into_iter_loop = "warn"
+fallible_impl_from = "warn"
+filter_map_next = "warn"
+flat_map_option = "warn"
+float_cmp_const = "warn"
+fn_params_excessive_bools = "warn"
+from_iter_instead_of_collect = "warn"
+if_same_then_else = "allow"
+implicit_clone = "warn"
+imprecise_flops = "warn"
+inconsistent_struct_constructor = "warn"
+inefficient_to_string = "warn"
+infinite_loop = "warn"
+invalid_upcast_comparisons = "warn"
+large_digit_groups = "warn"
+large_stack_arrays = "warn"
+large_types_passed_by_value = "warn"
+let_and_return = "allow"
+linkedlist = "warn"
+lossy_float_literal = "warn"
+macro_use_imports = "warn"
+mem_forget = "warn"
+mutex_integer = "warn"
+needless_continue = "warn"
+needless_for_each = "warn"
+negative_feature_names = "warn"
+path_buf_push_overwrite = "warn"
+ptr_as_ptr = "warn"
+rc_mutex = "warn"
+redundant_feature_names = "warn"
+ref_option_ref = "warn"
+rest_pat_in_fully_bound_structs = "warn"
+same_functions_in_if_condition = "warn"
+self_named_module_files = "warn"
+semicolon_if_nothing_returned = "warn"
+str_to_string = "warn"
+string_add = "warn"
+string_add_assign = "warn"
+string_lit_as_bytes = "warn"
+string_to_string = "warn"
+todo = "warn"
+trait_duplication_in_bounds = "warn"
+verbose_file_reads = "warn"
+wildcard_imports = "warn"
+zero_sized_map_values = "warn"
+
+[lints.rust]
+unreachable_pub = "warn"
+unsafe_op_in_unsafe_fn = "warn"
+unused_lifetimes = "warn"
+unused_macro_rules = "warn"
+unused_qualifications = "warn"
+
+[lints.rust.rust_2018_idioms]
+level = "warn"
+priority = -1
diff --git a/crates/toml/METADATA b/crates/toml/METADATA
index 9caed4b..0d6645f 100644
--- a/crates/toml/METADATA
+++ b/crates/toml/METADATA
@@ -1,17 +1,17 @@
name: "toml"
description: "()"
third_party {
- version: "0.8.10"
+ version: "0.8.19"
license_type: NOTICE
last_upgrade_date {
- year: 2024
- month: 2
- day: 7
+ year: 2025
+ month: 1
+ day: 15
}
homepage: "https://crates.io/crates/toml"
identifier {
type: "Archive"
- value: "https://static.crates.io/crates/toml/toml-0.8.10.crate"
- version: "0.8.10"
+ value: "https://static.crates.io/crates/toml/toml-0.8.19.crate"
+ version: "0.8.19"
}
}
diff --git a/crates/toml/examples/toml2json.rs b/crates/toml/examples/toml2json.rs
index 3660611..56a912c 100644
--- a/crates/toml/examples/toml2json.rs
+++ b/crates/toml/examples/toml2json.rs
@@ -1,7 +1,4 @@
-#![deny(warnings)]
-
use std::env;
-use std::fs::File;
use std::io;
use std::io::prelude::*;
@@ -10,15 +7,14 @@
fn main() {
let mut args = env::args();
- let mut input = String::new();
- if args.len() > 1 {
+ let input = if args.len() > 1 {
let name = args.nth(1).unwrap();
- File::open(name)
- .and_then(|mut f| f.read_to_string(&mut input))
- .unwrap();
+ std::fs::read_to_string(name).unwrap()
} else {
+ let mut input = String::new();
io::stdin().read_to_string(&mut input).unwrap();
- }
+ input
+ };
match input.parse() {
Ok(toml) => {
diff --git a/crates/toml/src/de.rs b/crates/toml/src/de.rs
index 9eb4c41..1a0929e 100644
--- a/crates/toml/src/de.rs
+++ b/crates/toml/src/de.rs
@@ -57,7 +57,7 @@
}
pub(crate) fn add_key(&mut self, key: String) {
- self.inner.add_key(key)
+ self.inner.add_key(key);
}
/// What went wrong
@@ -113,10 +113,7 @@
where
V: serde::de::Visitor<'de>,
{
- let inner = self
- .input
- .parse::<toml_edit::de::Deserializer>()
- .map_err(Error::new)?;
+ let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
inner.deserialize_any(visitor).map_err(Error::new)
}
@@ -126,10 +123,7 @@
where
V: serde::de::Visitor<'de>,
{
- let inner = self
- .input
- .parse::<toml_edit::de::Deserializer>()
- .map_err(Error::new)?;
+ let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
inner.deserialize_option(visitor).map_err(Error::new)
}
@@ -141,10 +135,7 @@
where
V: serde::de::Visitor<'de>,
{
- let inner = self
- .input
- .parse::<toml_edit::de::Deserializer>()
- .map_err(Error::new)?;
+ let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
inner
.deserialize_newtype_struct(name, visitor)
.map_err(Error::new)
@@ -159,10 +150,7 @@
where
V: serde::de::Visitor<'de>,
{
- let inner = self
- .input
- .parse::<toml_edit::de::Deserializer>()
- .map_err(Error::new)?;
+ let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
inner
.deserialize_struct(name, fields, visitor)
.map_err(Error::new)
@@ -178,10 +166,7 @@
where
V: serde::de::Visitor<'de>,
{
- let inner = self
- .input
- .parse::<toml_edit::de::Deserializer>()
- .map_err(Error::new)?;
+ let inner = toml_edit::de::Deserializer::parse(self.input).map_err(Error::new)?;
inner
.deserialize_enum(name, variants, visitor)
.map_err(Error::new)
diff --git a/crates/toml/src/fmt.rs b/crates/toml/src/fmt.rs
index 281cb59..650ba4d 100644
--- a/crates/toml/src/fmt.rs
+++ b/crates/toml/src/fmt.rs
@@ -5,7 +5,7 @@
}
impl toml_edit::visit_mut::VisitMut for DocumentFormatter {
- fn visit_document_mut(&mut self, node: &mut toml_edit::Document) {
+ fn visit_document_mut(&mut self, node: &mut toml_edit::DocumentMut) {
toml_edit::visit_mut::visit_document_mut(self, node);
}
diff --git a/crates/toml/src/lib.rs b/crates/toml/src/lib.rs
index 61e6a4c..276e617 100644
--- a/crates/toml/src/lib.rs
+++ b/crates/toml/src/lib.rs
@@ -5,8 +5,6 @@
//! ```toml
//! [package]
//! name = "toml"
-//! version = "0.4.2"
-//! authors = ["Alex Crichton <[email protected]>"]
//!
//! [dependencies]
//! serde = "1.0"
@@ -140,14 +138,15 @@
//! [`serde`]: https://serde.rs/
//! [serde]: https://serde.rs/
-#![deny(missing_docs)]
-#![warn(rust_2018_idioms)]
+#![cfg_attr(docsrs, feature(doc_auto_cfg))]
// Makes rustc abort compilation if there are any unsafe blocks in the crate.
// Presence of this annotation is picked up by tools such as cargo-geiger
// and lets them ensure that there is indeed no unsafe code as opposed to
// something they couldn't detect (e.g. unsafe added via macro expansion, etc).
#![forbid(unsafe_code)]
-#![cfg_attr(docsrs, feature(doc_auto_cfg))]
+#![warn(missing_docs)]
+#![warn(clippy::print_stderr)]
+#![warn(clippy::print_stdout)]
pub mod map;
pub mod value;
diff --git a/crates/toml/src/macros.rs b/crates/toml/src/macros.rs
index a295970..d993ca9 100644
--- a/crates/toml/src/macros.rs
+++ b/crates/toml/src/macros.rs
@@ -8,11 +8,6 @@
/// let cargo_toml = toml::toml! {
/// [package]
/// name = "toml"
-/// version = "0.4.5"
-/// authors = ["Alex Crichton <[email protected]>"]
-///
-/// [badges]
-/// travis-ci = { repository = "alexcrichton/toml-rs" }
///
/// [dependencies]
/// serde = "1.0"
diff --git a/crates/toml/src/map.rs b/crates/toml/src/map.rs
index bd720a7..f7d5c38 100644
--- a/crates/toml/src/map.rs
+++ b/crates/toml/src/map.rs
@@ -70,7 +70,7 @@
/// Clears the map, removing all values.
#[inline]
pub fn clear(&mut self) {
- self.map.clear()
+ self.map.clear();
}
/// Returns a reference to the value corresponding to the key.
@@ -78,10 +78,10 @@
/// The key may be any borrowed form of the map's key type, but the ordering
/// on the borrowed form *must* match the ordering on the key type.
#[inline]
- pub fn get<Q: ?Sized>(&self, key: &Q) -> Option<&Value>
+ pub fn get<Q>(&self, key: &Q) -> Option<&Value>
where
String: Borrow<Q>,
- Q: Ord + Eq + Hash,
+ Q: Ord + Eq + Hash + ?Sized,
{
self.map.get(key)
}
@@ -91,10 +91,10 @@
/// The key may be any borrowed form of the map's key type, but the ordering
/// on the borrowed form *must* match the ordering on the key type.
#[inline]
- pub fn contains_key<Q: ?Sized>(&self, key: &Q) -> bool
+ pub fn contains_key<Q>(&self, key: &Q) -> bool
where
String: Borrow<Q>,
- Q: Ord + Eq + Hash,
+ Q: Ord + Eq + Hash + ?Sized,
{
self.map.contains_key(key)
}
@@ -104,10 +104,10 @@
/// The key may be any borrowed form of the map's key type, but the ordering
/// on the borrowed form *must* match the ordering on the key type.
#[inline]
- pub fn get_mut<Q: ?Sized>(&mut self, key: &Q) -> Option<&mut Value>
+ pub fn get_mut<Q>(&mut self, key: &Q) -> Option<&mut Value>
where
String: Borrow<Q>,
- Q: Ord + Eq + Hash,
+ Q: Ord + Eq + Hash + ?Sized,
{
self.map.get_mut(key)
}
@@ -130,10 +130,10 @@
/// The key may be any borrowed form of the map's key type, but the ordering
/// on the borrowed form *must* match the ordering on the key type.
#[inline]
- pub fn remove<Q: ?Sized>(&mut self, key: &Q) -> Option<Value>
+ pub fn remove<Q>(&mut self, key: &Q) -> Option<Value>
where
String: Borrow<Q>,
- Q: Ord + Eq + Hash,
+ Q: Ord + Eq + Hash + ?Sized,
{
self.map.remove(key)
}
@@ -241,10 +241,10 @@
/// Access an element of this map. Panics if the given key is not present in the
/// map.
-impl<'a, Q: ?Sized> ops::Index<&'a Q> for Map<String, Value>
+impl<'a, Q> ops::Index<&'a Q> for Map<String, Value>
where
String: Borrow<Q>,
- Q: Ord + Eq + Hash,
+ Q: Ord + Eq + Hash + ?Sized,
{
type Output = Value;
@@ -255,10 +255,10 @@
/// Mutably access an element of this map. Panics if the given key is not
/// present in the map.
-impl<'a, Q: ?Sized> ops::IndexMut<&'a Q> for Map<String, Value>
+impl<'a, Q> ops::IndexMut<&'a Q> for Map<String, Value>
where
String: Borrow<Q>,
- Q: Ord + Eq + Hash,
+ Q: Ord + Eq + Hash + ?Sized,
{
fn index_mut(&mut self, index: &Q) -> &mut Value {
self.map.get_mut(index).expect("no entry found for key")
@@ -452,13 +452,13 @@
impl<'a> VacantEntry<'a> {
/// Gets a reference to the key that would be used when inserting a value
- /// through the VacantEntry.
+ /// through the `VacantEntry`.
#[inline]
pub fn key(&self) -> &String {
self.vacant.key()
}
- /// Sets the value of the entry with the VacantEntry's key, and returns a
+ /// Sets the value of the entry with the `VacantEntry`'s key, and returns a
/// mutable reference to it.
#[inline]
pub fn insert(self, value: Value) -> &'a mut Value {
@@ -518,7 +518,7 @@
}
}
-/// An iterator over a toml::Map's entries.
+/// An iterator over a `toml::Map`'s entries.
pub struct Iter<'a> {
iter: IterImpl<'a>,
}
@@ -543,7 +543,7 @@
}
}
-/// A mutable iterator over a toml::Map's entries.
+/// A mutable iterator over a `toml::Map`'s entries.
pub struct IterMut<'a> {
iter: IterMutImpl<'a>,
}
@@ -568,7 +568,7 @@
}
}
-/// An owning iterator over a toml::Map's entries.
+/// An owning iterator over a `toml::Map`'s entries.
pub struct IntoIter {
iter: IntoIterImpl,
}
@@ -582,7 +582,7 @@
//////////////////////////////////////////////////////////////////////////////
-/// An iterator over a toml::Map's keys.
+/// An iterator over a `toml::Map`'s keys.
pub struct Keys<'a> {
iter: KeysImpl<'a>,
}
@@ -596,7 +596,7 @@
//////////////////////////////////////////////////////////////////////////////
-/// An iterator over a toml::Map's values.
+/// An iterator over a `toml::Map`'s values.
pub struct Values<'a> {
iter: ValuesImpl<'a>,
}
diff --git a/crates/toml/src/ser.rs b/crates/toml/src/ser.rs
index f1ab24b..b64271a 100644
--- a/crates/toml/src/ser.rs
+++ b/crates/toml/src/ser.rs
@@ -43,9 +43,9 @@
/// println!("{}", toml)
/// ```
#[cfg(feature = "display")]
-pub fn to_string<T: ?Sized>(value: &T) -> Result<String, Error>
+pub fn to_string<T>(value: &T) -> Result<String, Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
let mut output = String::new();
let serializer = Serializer::new(&mut output);
@@ -61,11 +61,11 @@
/// To serialize TOML values, instead of documents, see [`ValueSerializer`].
///
/// For greater customization, instead serialize to a
-/// [`toml_edit::Document`](https://docs.rs/toml_edit/latest/toml_edit/struct.Document.html).
+/// [`toml_edit::DocumentMut`](https://docs.rs/toml_edit/latest/toml_edit/struct.DocumentMut.html).
#[cfg(feature = "display")]
-pub fn to_string_pretty<T: ?Sized>(value: &T) -> Result<String, Error>
+pub fn to_string_pretty<T>(value: &T) -> Result<String, Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
let mut output = String::new();
let serializer = Serializer::pretty(&mut output);
@@ -161,7 +161,7 @@
/// Apply a default "pretty" policy to the document
///
/// For greater customization, instead serialize to a
- /// [`toml_edit::Document`](https://docs.rs/toml_edit/latest/toml_edit/struct.Document.html).
+ /// [`toml_edit::DocumentMut`](https://docs.rs/toml_edit/latest/toml_edit/struct.DocumentMut.html).
pub fn pretty(dst: &'d mut String) -> Self {
let mut ser = Serializer::new(dst);
ser.settings.multiline_array = true;
@@ -301,9 +301,9 @@
)
}
- fn serialize_some<T: ?Sized>(self, v: &T) -> Result<Self::Ok, Self::Error>
+ fn serialize_some<T>(self, v: &T) -> Result<Self::Ok, Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
write_document(
self.dst,
@@ -345,13 +345,9 @@
)
}
- fn serialize_newtype_struct<T: ?Sized>(
- self,
- name: &'static str,
- v: &T,
- ) -> Result<Self::Ok, Self::Error>
+ fn serialize_newtype_struct<T>(self, name: &'static str, v: &T) -> Result<Self::Ok, Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
write_document(
self.dst,
@@ -360,7 +356,7 @@
)
}
- fn serialize_newtype_variant<T: ?Sized>(
+ fn serialize_newtype_variant<T>(
self,
name: &'static str,
variant_index: u32,
@@ -368,7 +364,7 @@
value: &T,
) -> Result<Self::Ok, Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
write_document(
self.dst,
@@ -617,9 +613,9 @@
)
}
- fn serialize_some<T: ?Sized>(self, v: &T) -> Result<Self::Ok, Self::Error>
+ fn serialize_some<T>(self, v: &T) -> Result<Self::Ok, Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
write_value(
self.dst,
@@ -657,13 +653,9 @@
)
}
- fn serialize_newtype_struct<T: ?Sized>(
- self,
- name: &'static str,
- v: &T,
- ) -> Result<Self::Ok, Self::Error>
+ fn serialize_newtype_struct<T>(self, name: &'static str, v: &T) -> Result<Self::Ok, Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
write_value(
self.dst,
@@ -671,7 +663,7 @@
)
}
- fn serialize_newtype_variant<T: ?Sized>(
+ fn serialize_newtype_variant<T>(
self,
name: &'static str,
variant_index: u32,
@@ -679,7 +671,7 @@
value: &T,
) -> Result<Self::Ok, Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
write_value(
self.dst,
@@ -750,11 +742,14 @@
}
#[cfg(feature = "display")]
-use internal::*;
+use internal::{
+ write_document, write_value, SerializeDocumentArray, SerializeDocumentTable,
+ SerializeValueArray, SerializeValueTable,
+};
#[cfg(feature = "display")]
mod internal {
- use super::*;
+ use super::{Error, Serializer, ValueSerializer};
use crate::fmt::DocumentFormatter;
@@ -782,9 +777,9 @@
type Ok = ();
type Error = Error;
- fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+ fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_element(value).map_err(Error::wrap)
}
@@ -798,9 +793,9 @@
type Ok = ();
type Error = Error;
- fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+ fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_element(value).map_err(Error::wrap)
}
@@ -814,9 +809,9 @@
type Ok = ();
type Error = Error;
- fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+ fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_field(value).map_err(Error::wrap)
}
@@ -830,9 +825,9 @@
type Ok = ();
type Error = Error;
- fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+ fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_field(value).map_err(Error::wrap)
}
@@ -866,16 +861,16 @@
type Ok = ();
type Error = Error;
- fn serialize_key<T: ?Sized>(&mut self, input: &T) -> Result<(), Self::Error>
+ fn serialize_key<T>(&mut self, input: &T) -> Result<(), Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_key(input).map_err(Error::wrap)
}
- fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+ fn serialize_value<T>(&mut self, value: &T) -> Result<(), Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_value(value).map_err(Error::wrap)
}
@@ -889,13 +884,9 @@
type Ok = ();
type Error = Error;
- fn serialize_field<T: ?Sized>(
- &mut self,
- key: &'static str,
- value: &T,
- ) -> Result<(), Self::Error>
+ fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_field(key, value).map_err(Error::wrap)
}
@@ -911,6 +902,7 @@
value: Result<toml_edit::Value, crate::edit::ser::Error>,
) -> Result<(), Error> {
use std::fmt::Write;
+ use toml_edit::visit_mut::VisitMut as _;
let value = value.map_err(Error::wrap)?;
let mut table = match toml_edit::Item::Value(value).into_table() {
@@ -920,10 +912,9 @@
}
};
- use toml_edit::visit_mut::VisitMut as _;
settings.visit_table_mut(&mut table);
- let doc: toml_edit::Document = table.into();
+ let doc: toml_edit::DocumentMut = table.into();
write!(dst, "{}", doc).unwrap();
Ok(())
@@ -951,9 +942,9 @@
type Ok = ();
type Error = Error;
- fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+ fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_element(value).map_err(Error::wrap)
}
@@ -967,9 +958,9 @@
type Ok = ();
type Error = Error;
- fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+ fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_element(value).map_err(Error::wrap)
}
@@ -983,9 +974,9 @@
type Ok = ();
type Error = Error;
- fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+ fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_field(value).map_err(Error::wrap)
}
@@ -999,9 +990,9 @@
type Ok = ();
type Error = Error;
- fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error>
+ fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_field(value).map_err(Error::wrap)
}
@@ -1033,16 +1024,16 @@
type Ok = ();
type Error = Error;
- fn serialize_key<T: ?Sized>(&mut self, input: &T) -> Result<(), Self::Error>
+ fn serialize_key<T>(&mut self, input: &T) -> Result<(), Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_key(input).map_err(Error::wrap)
}
- fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+ fn serialize_value<T>(&mut self, value: &T) -> Result<(), Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_value(value).map_err(Error::wrap)
}
@@ -1056,13 +1047,9 @@
type Ok = ();
type Error = Error;
- fn serialize_field<T: ?Sized>(
- &mut self,
- key: &'static str,
- value: &T,
- ) -> Result<(), Self::Error>
+ fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
where
- T: serde::ser::Serialize,
+ T: serde::ser::Serialize + ?Sized,
{
self.inner.serialize_field(key, value).map_err(Error::wrap)
}
diff --git a/crates/toml/src/value.rs b/crates/toml/src/value.rs
index e6f832a..c689b38 100644
--- a/crates/toml/src/value.rs
+++ b/crates/toml/src/value.rs
@@ -248,7 +248,7 @@
impl<'a> From<&'a str> for Value {
#[inline]
fn from(val: &'a str) -> Value {
- Value::String(val.to_string())
+ Value::String(val.to_owned())
}
}
@@ -362,9 +362,9 @@
}
}
-impl<'s, T: ?Sized> Index for &'s T
+impl<'s, T> Index for &'s T
where
- T: Index,
+ T: Index + ?Sized,
{
fn index<'a>(&self, val: &'a Value) -> Option<&'a Value> {
(**self).index(val)
@@ -465,7 +465,7 @@
}
fn visit_u64<E: de::Error>(self, value: u64) -> Result<Value, E> {
- if value <= i64::max_value() as u64 {
+ if i64::try_from(value).is_ok() {
Ok(Value::Integer(value as i64))
} else {
Err(de::Error::custom("u64 value was too large"))
@@ -733,7 +733,7 @@
fn variant_seed<V>(mut self, seed: V) -> Result<(V::Value, Self::Variant), Self::Error>
where
- V: serde::de::DeserializeSeed<'de>,
+ V: de::DeserializeSeed<'de>,
{
use de::Error;
let (key, value) = match self.iter.next() {
@@ -764,7 +764,7 @@
}
}
-impl<'de> serde::de::VariantAccess<'de> for MapEnumDeserializer {
+impl<'de> de::VariantAccess<'de> for MapEnumDeserializer {
type Error = crate::de::Error;
fn unit_variant(self) -> Result<(), Self::Error> {
@@ -793,20 +793,20 @@
fn newtype_variant_seed<T>(self, seed: T) -> Result<T::Value, Self::Error>
where
- T: serde::de::DeserializeSeed<'de>,
+ T: de::DeserializeSeed<'de>,
{
seed.deserialize(self.value.into_deserializer())
}
fn tuple_variant<V>(self, len: usize, visitor: V) -> Result<V::Value, Self::Error>
where
- V: serde::de::Visitor<'de>,
+ V: de::Visitor<'de>,
{
use de::Error;
match self.value {
Value::Array(values) => {
if values.len() == len {
- serde::de::Deserializer::deserialize_seq(values.into_deserializer(), visitor)
+ de::Deserializer::deserialize_seq(values.into_deserializer(), visitor)
} else {
Err(Error::custom(format!("expected tuple with length {}", len)))
}
@@ -826,10 +826,7 @@
let tuple_values = tuple_values?;
if tuple_values.len() == len {
- serde::de::Deserializer::deserialize_seq(
- tuple_values.into_deserializer(),
- visitor,
- )
+ de::Deserializer::deserialize_seq(tuple_values.into_deserializer(), visitor)
} else {
Err(Error::custom(format!("expected tuple with length {}", len)))
}
@@ -847,9 +844,9 @@
visitor: V,
) -> Result<V::Value, Self::Error>
where
- V: serde::de::Visitor<'de>,
+ V: de::Visitor<'de>,
{
- serde::de::Deserializer::deserialize_struct(
+ de::Deserializer::deserialize_struct(
self.value.into_deserializer(),
"", // TODO: this should be the variant name
fields,
@@ -858,7 +855,7 @@
}
}
-impl<'de> de::IntoDeserializer<'de, crate::de::Error> for Value {
+impl<'de> IntoDeserializer<'de, crate::de::Error> for Value {
type Deserializer = Self;
fn into_deserializer(self) -> Self {
@@ -913,7 +910,7 @@
}
fn serialize_u64(self, value: u64) -> Result<Value, crate::ser::Error> {
- if value <= i64::max_value() as u64 {
+ if i64::try_from(value).is_ok() {
self.serialize_i64(value as i64)
} else {
Err(ser::Error::custom("u64 value was too large"))
@@ -964,18 +961,18 @@
self.serialize_str(_variant)
}
- fn serialize_newtype_struct<T: ?Sized>(
+ fn serialize_newtype_struct<T>(
self,
_name: &'static str,
value: &T,
) -> Result<Value, crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
value.serialize(self)
}
- fn serialize_newtype_variant<T: ?Sized>(
+ fn serialize_newtype_variant<T>(
self,
_name: &'static str,
_variant_index: u32,
@@ -983,7 +980,7 @@
value: &T,
) -> Result<Value, crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
let value = value.serialize(ValueSerializer)?;
let mut table = Table::new();
@@ -995,9 +992,9 @@
Err(crate::ser::Error::unsupported_none())
}
- fn serialize_some<T: ?Sized>(self, value: &T) -> Result<Value, crate::ser::Error>
+ fn serialize_some<T>(self, value: &T) -> Result<Value, crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
value.serialize(self)
}
@@ -1145,18 +1142,18 @@
Err(crate::ser::Error::unsupported_type(Some(name)))
}
- fn serialize_newtype_struct<T: ?Sized>(
+ fn serialize_newtype_struct<T>(
self,
_name: &'static str,
value: &T,
) -> Result<Table, crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
value.serialize(self)
}
- fn serialize_newtype_variant<T: ?Sized>(
+ fn serialize_newtype_variant<T>(
self,
_name: &'static str,
_variant_index: u32,
@@ -1164,7 +1161,7 @@
value: &T,
) -> Result<Table, crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
let value = value.serialize(ValueSerializer)?;
let mut table = Table::new();
@@ -1176,9 +1173,9 @@
Err(crate::ser::Error::unsupported_none())
}
- fn serialize_some<T: ?Sized>(self, value: &T) -> Result<Table, crate::ser::Error>
+ fn serialize_some<T>(self, value: &T) -> Result<Table, crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
value.serialize(self)
}
@@ -1243,9 +1240,9 @@
type Ok = Value;
type Error = crate::ser::Error;
- fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+ fn serialize_element<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
self.vec.push(Value::try_from(value)?);
Ok(())
@@ -1260,9 +1257,9 @@
type Ok = Value;
type Error = crate::ser::Error;
- fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+ fn serialize_element<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
ser::SerializeSeq::serialize_element(self, value)
}
@@ -1276,9 +1273,9 @@
type Ok = Value;
type Error = crate::ser::Error;
- fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+ fn serialize_field<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
ser::SerializeSeq::serialize_element(self, value)
}
@@ -1292,9 +1289,9 @@
type Ok = Value;
type Error = crate::ser::Error;
- fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+ fn serialize_field<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
ser::SerializeSeq::serialize_element(self, value)
}
@@ -1313,9 +1310,9 @@
type Ok = Table;
type Error = crate::ser::Error;
- fn serialize_key<T: ?Sized>(&mut self, key: &T) -> Result<(), crate::ser::Error>
+ fn serialize_key<T>(&mut self, key: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
match Value::try_from(key)? {
Value::String(s) => self.next_key = Some(s),
@@ -1324,9 +1321,9 @@
Ok(())
}
- fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+ fn serialize_value<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
let key = self.next_key.take();
let key = key.expect("serialize_value called before serialize_key");
@@ -1351,13 +1348,9 @@
type Ok = Table;
type Error = crate::ser::Error;
- fn serialize_field<T: ?Sized>(
- &mut self,
- key: &'static str,
- value: &T,
- ) -> Result<(), crate::ser::Error>
+ fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
ser::SerializeMap::serialize_key(self, key)?;
ser::SerializeMap::serialize_value(self, value)
@@ -1376,16 +1369,16 @@
type Ok = Value;
type Error = crate::ser::Error;
- fn serialize_key<T: ?Sized>(&mut self, key: &T) -> Result<(), crate::ser::Error>
+ fn serialize_key<T>(&mut self, key: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
self.ser.serialize_key(key)
}
- fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), crate::ser::Error>
+ fn serialize_value<T>(&mut self, value: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
self.ser.serialize_value(value)
}
@@ -1399,13 +1392,9 @@
type Ok = Value;
type Error = crate::ser::Error;
- fn serialize_field<T: ?Sized>(
- &mut self,
- key: &'static str,
- value: &T,
- ) -> Result<(), crate::ser::Error>
+ fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), crate::ser::Error>
where
- T: ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
ser::SerializeMap::serialize_key(self, key)?;
ser::SerializeMap::serialize_value(self, value)
@@ -1496,40 +1485,40 @@
}
}
-impl serde::ser::SerializeTupleVariant for ValueSerializeVariant<ValueSerializeVec> {
- type Ok = crate::Value;
+impl ser::SerializeTupleVariant for ValueSerializeVariant<ValueSerializeVec> {
+ type Ok = Value;
type Error = crate::ser::Error;
- fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Self::Error>
+ fn serialize_field<T>(&mut self, value: &T) -> Result<(), Self::Error>
where
- T: serde::ser::Serialize,
+ T: ser::Serialize + ?Sized,
{
- serde::ser::SerializeSeq::serialize_element(&mut self.inner, value)
+ ser::SerializeSeq::serialize_element(&mut self.inner, value)
}
fn end(self) -> Result<Self::Ok, Self::Error> {
- let inner = serde::ser::SerializeSeq::end(self.inner)?;
+ let inner = ser::SerializeSeq::end(self.inner)?;
let mut table = Table::new();
table.insert(self.variant.to_owned(), inner);
Ok(Value::Table(table))
}
}
-impl serde::ser::SerializeStructVariant for ValueSerializeVariant<ValueSerializeMap> {
- type Ok = crate::Value;
+impl ser::SerializeStructVariant for ValueSerializeVariant<ValueSerializeMap> {
+ type Ok = Value;
type Error = crate::ser::Error;
#[inline]
fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
where
- T: serde::ser::Serialize + ?Sized,
+ T: ser::Serialize + ?Sized,
{
- serde::ser::SerializeStruct::serialize_field(&mut self.inner, key, value)
+ ser::SerializeStruct::serialize_field(&mut self.inner, key, value)
}
#[inline]
fn end(self) -> Result<Self::Ok, Self::Error> {
- let inner = serde::ser::SerializeStruct::end(self.inner)?;
+ let inner = ser::SerializeStruct::end(self.inner)?;
let mut table = Table::new();
table.insert(self.variant.to_owned(), inner);
Ok(Value::Table(table))
diff --git a/crates/toml/tests/decoder.rs b/crates/toml/tests/decoder.rs
index 5af906f..399c1dd 100644
--- a/crates/toml/tests/decoder.rs
+++ b/crates/toml/tests/decoder.rs
@@ -1,7 +1,8 @@
#![cfg(all(feature = "parse", feature = "display"))]
+#![allow(dead_code)]
#[derive(Copy, Clone)]
-pub struct Decoder;
+pub(crate) struct Decoder;
impl toml_test_harness::Decoder for Decoder {
fn name(&self) -> &str {
diff --git a/crates/toml/tests/encoder.rs b/crates/toml/tests/encoder.rs
index e76a74a..2f7ceae 100644
--- a/crates/toml/tests/encoder.rs
+++ b/crates/toml/tests/encoder.rs
@@ -1,7 +1,8 @@
#![cfg(all(feature = "parse", feature = "display"))]
+#![allow(dead_code)]
#[derive(Copy, Clone)]
-pub struct Encoder;
+pub(crate) struct Encoder;
impl toml_test_harness::Encoder for Encoder {
fn name(&self) -> &str {
diff --git a/crates/toml/tests/testsuite/de_errors.rs b/crates/toml/tests/testsuite/de_errors.rs
index b3630bd..3600f98 100644
--- a/crates/toml/tests/testsuite/de_errors.rs
+++ b/crates/toml/tests/testsuite/de_errors.rs
@@ -1,11 +1,15 @@
-use serde::{de, Deserialize};
use std::fmt;
+use serde::{de, Deserialize};
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
+use snapbox::str;
+
macro_rules! bad {
($toml:expr, $ty:ty, $msg:expr) => {
match toml::from_str::<$ty>($toml) {
Ok(s) => panic!("parsed to: {:#?}", s),
- Err(e) => snapbox::assert_eq($msg, e.to_string()),
+ Err(e) => assert_data_eq!(e.to_string(), $msg.raw()),
}
};
}
@@ -29,7 +33,7 @@
Uppercase(String),
}
-impl<'de> de::Deserialize<'de> for CasedString {
+impl<'de> Deserialize<'de> for CasedString {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: de::Deserializer<'de>,
@@ -39,7 +43,7 @@
impl<'de> de::Visitor<'de> for CasedStringVisitor {
type Value = CasedString;
- fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
+ fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str("a string")
}
@@ -50,9 +54,9 @@
if s.is_empty() {
Err(de::Error::invalid_length(0, &"a non-empty string"))
} else if s.chars().all(|x| x.is_ascii_lowercase()) {
- Ok(CasedString::Lowercase(s.to_string()))
+ Ok(CasedString::Lowercase(s.to_owned()))
} else if s.chars().all(|x| x.is_ascii_uppercase()) {
- Ok(CasedString::Uppercase(s.to_string()))
+ Ok(CasedString::Uppercase(s.to_owned()))
} else {
Err(de::Error::invalid_value(
de::Unexpected::Str(s),
@@ -83,13 +87,14 @@
# ^
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 2, column 19
|
2 | p_a = ''
| ^^
invalid length 0, expected a non-empty string
-"
+
+"#]]
);
// Missing field in table.
@@ -99,13 +104,14 @@
# ^
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 1, column 1
|
1 |
| ^
missing field `p_b`
-"
+
+"#]]
);
// Invalid type in p_b.
@@ -116,13 +122,14 @@
# ^
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 3, column 19
|
3 | p_b = 1
| ^
invalid type: integer `1`, expected a sequence
-"
+
+"#]]
);
// Sub-table in Vec is missing a field.
@@ -135,13 +142,14 @@
]
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 4, column 17
|
4 | {c_a = 'a'}
| ^^^^^^^^^^^
missing field `c_b`
-"
+
+"#]]
);
// Sub-table in Vec has a field with a bad value.
@@ -154,13 +162,14 @@
]
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 4, column 35
|
4 | {c_a = 'a', c_b = '*'}
| ^^^
-invalid value: string \"*\", expected all lowercase or all uppercase
-"
+invalid value: string "*", expected all lowercase or all uppercase
+
+"#]]
);
// Sub-table in Vec is missing a field.
@@ -174,13 +183,14 @@
]
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 5, column 17
|
5 | {c_a = 'aa'}
| ^^^^^^^^^^^^
missing field `c_b`
-"
+
+"#]]
);
// Sub-table in the middle of a Vec is missing a field.
@@ -195,13 +205,14 @@
]
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 5, column 17
|
5 | {c_a = 'aa'},
| ^^^^^^^^^^^^
missing field `c_b`
-"
+
+"#]]
);
// Sub-table in the middle of a Vec has a field with a bad value.
@@ -216,13 +227,14 @@
]
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 5, column 36
|
5 | {c_a = 'aa', c_b = 1},
| ^
invalid type: integer `1`, expected a string
-"
+
+"#]]
);
// Sub-table in the middle of a Vec has an extra field.
@@ -238,13 +250,14 @@
]
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 5, column 42
|
5 | {c_a = 'aa', c_b = 'bb', c_d = 'd'},
| ^^^
unknown field `c_d`, expected `c_a` or `c_b`
-"
+
+"#]]
);
// Sub-table in the middle of a Vec is missing a field.
@@ -267,13 +280,14 @@
c_b = 'bbbb'
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 6, column 13
|
6 | [[p_b]]
- | ^^^^^^^^^^^^^^^^^^^
+ | ^^^^^^^
missing field `c_b`
-"
+
+"#]]
);
// Sub-table in the middle of a Vec has a field with a bad value.
@@ -292,13 +306,14 @@
c_b = 'bbb'
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 8, column 19
|
8 | c_b = '*'
| ^^^
-invalid value: string \"*\", expected all lowercase or all uppercase
-"
+invalid value: string "*", expected all lowercase or all uppercase
+
+"#]]
);
// Sub-table in the middle of a Vec has an extra field.
@@ -320,13 +335,14 @@
c_b = 'bbbb'
",
Parent<CasedString>,
- "\
+ str![[r#"
TOML parse error at line 8, column 13
|
8 | c_d = 'dd' # unknown field
| ^^^
unknown field `c_d`, expected `c_a` or `c_b`
-"
+
+"#]]
);
}
@@ -338,13 +354,14 @@
# ^
",
Parent<String>,
- "\
+ str![[r#"
TOML parse error at line 1, column 1
|
1 |
| ^
missing field `p_b`
-"
+
+"#]]
);
bad!(
@@ -356,13 +373,14 @@
]
",
Parent<String>,
- "\
+ str![[r#"
TOML parse error at line 4, column 17
|
4 | {c_a = ''}
| ^^^^^^^^^^
missing field `c_b`
-"
+
+"#]]
);
bad!(
@@ -374,13 +392,14 @@
]
",
Parent<String>,
- "\
+ str![[r#"
TOML parse error at line 4, column 34
|
4 | {c_a = '', c_b = 1}
| ^
invalid type: integer `1`, expected a string
-"
+
+"#]]
);
// FIXME: This location could be better.
@@ -393,13 +412,14 @@
]
",
Parent<String>,
- "\
+ str![[r#"
TOML parse error at line 4, column 38
|
4 | {c_a = '', c_b = '', c_d = ''},
| ^^^
unknown field `c_d`, expected `c_a` or `c_b`
-"
+
+"#]]
);
bad!(
@@ -411,13 +431,14 @@
]
",
Parent<String>,
- "\
+ str![[r#"
TOML parse error at line 4, column 34
|
4 | {c_a = '', c_b = 1, c_d = ''},
| ^
invalid type: integer `1`, expected a string
-"
+
+"#]]
);
}
@@ -431,13 +452,14 @@
a = 2\r\n\
",
toml::Value,
- "\
+ str![[r#"
TOML parse error at line 5, column 1
|
5 | a = 2
| ^
duplicate key `a` in table `t2`
-"
+
+"#]]
);
// Should be the same as above.
@@ -449,12 +471,13 @@
a = 2\n\
",
toml::Value,
- "\
+ str![[r#"
TOML parse error at line 5, column 1
|
5 | a = 2
| ^
duplicate key `a` in table `t2`
-"
+
+"#]]
);
}
diff --git a/crates/toml/tests/testsuite/display.rs b/crates/toml/tests/testsuite/display.rs
index 7430fac..a0e0cff 100644
--- a/crates/toml/tests/testsuite/display.rs
+++ b/crates/toml/tests/testsuite/display.rs
@@ -3,13 +3,13 @@
macro_rules! map( ($($k:expr => $v:expr),*) => ({
let mut _m = Map::new();
- $(_m.insert($k.to_string(), $v);)*
+ $(_m.insert($k.to_owned(), $v);)*
_m
}) );
#[test]
fn simple_show() {
- assert_eq!(String("foo".to_string()).to_string(), "\"foo\"");
+ assert_eq!(String("foo".to_owned()).to_string(), "\"foo\"");
assert_eq!(Integer(10).to_string(), "10");
assert_eq!(Float(10.0).to_string(), "10.0");
assert_eq!(Float(2.4).to_string(), "2.4");
@@ -32,7 +32,7 @@
map! {
"test" => Integer(2),
"test2" => Table(map! {
- "test" => String("wut".to_string())
+ "test" => String("wut".to_owned())
})
}
.to_string(),
@@ -45,7 +45,7 @@
map! {
"test" => Integer(2),
"test2" => Table(map! {
- "test" => String("wut".to_string())
+ "test" => String("wut".to_owned())
})
}
.to_string(),
@@ -58,7 +58,7 @@
map! {
"test" => Integer(2),
"test2" => Array(vec![Table(map! {
- "test" => String("wut".to_string())
+ "test" => String("wut".to_owned())
})])
}
.to_string(),
@@ -75,7 +75,7 @@
}
.to_string(),
"\"foo.bar\" = 2\n\
- \"foo\\\"bar\" = 2\n"
+ 'foo\"bar' = 2\n"
);
assert_eq!(
map! {
@@ -94,7 +94,7 @@
"test" => Integer(2),
"test2" => Array(vec![Table(map! {
"test" => Array(vec![Array(vec![Integer(2), Integer(3)]),
- Array(vec![String("foo".to_string()), String("bar".to_string())])])
+ Array(vec![String("foo".to_owned()), String("bar".to_owned())])])
})])
};
assert_eq!(
diff --git a/crates/toml/tests/testsuite/display_tricky.rs b/crates/toml/tests/testsuite/display_tricky.rs
index 379ae91..a75e00e 100644
--- a/crates/toml/tests/testsuite/display_tricky.rs
+++ b/crates/toml/tests/testsuite/display_tricky.rs
@@ -2,25 +2,25 @@
use serde::Serialize;
#[derive(Debug, Serialize, Deserialize)]
-pub struct Recipe {
- pub name: String,
- pub description: Option<String>,
+pub(crate) struct Recipe {
+ pub(crate) name: String,
+ pub(crate) description: Option<String>,
#[serde(default)]
- pub modules: Vec<Modules>,
+ pub(crate) modules: Vec<Modules>,
#[serde(default)]
- pub packages: Vec<Packages>,
+ pub(crate) packages: Vec<Packages>,
}
#[derive(Debug, Serialize, Deserialize)]
-pub struct Modules {
- pub name: String,
- pub version: Option<String>,
+pub(crate) struct Modules {
+ pub(crate) name: String,
+ pub(crate) version: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
-pub struct Packages {
- pub name: String,
- pub version: Option<String>,
+pub(crate) struct Packages {
+ pub(crate) name: String,
+ pub(crate) version: Option<String>,
}
#[test]
diff --git a/crates/toml/tests/testsuite/enum_external_deserialize.rs b/crates/toml/tests/testsuite/enum_external_deserialize.rs
index 6e0c2f7..247a2c9 100644
--- a/crates/toml/tests/testsuite/enum_external_deserialize.rs
+++ b/crates/toml/tests/testsuite/enum_external_deserialize.rs
@@ -1,4 +1,7 @@
use serde::Deserialize;
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
+use snapbox::str;
#[derive(Debug, Deserialize, PartialEq)]
struct OuterStruct {
@@ -33,63 +36,81 @@
#[test]
fn invalid_variant_returns_error_with_good_message_string() {
let error = value_from_str::<TheEnum>("\"NonExistent\"").unwrap_err();
- snapbox::assert_eq(
- r#"unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
-"#,
+ assert_data_eq!(
error.to_string(),
+ str![[r#"
+unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
+
+"#]]
+ .raw()
);
let error = toml::from_str::<Val>("val = \"NonExistent\"").unwrap_err();
- snapbox::assert_eq(
- r#"TOML parse error at line 1, column 7
+ assert_data_eq!(
+ error.to_string(),
+ str![[r#"
+TOML parse error at line 1, column 7
|
1 | val = "NonExistent"
| ^^^^^^^^^^^^^
unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
-"#,
- error.to_string(),
+
+"#]]
+ .raw()
);
}
#[test]
fn invalid_variant_returns_error_with_good_message_inline_table() {
let error = value_from_str::<TheEnum>("{ NonExistent = {} }").unwrap_err();
- snapbox::assert_eq(
- r#"unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
-"#,
+ assert_data_eq!(
error.to_string(),
+ str![[r#"
+unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
+
+"#]]
+ .raw()
);
let error = toml::from_str::<Val>("val = { NonExistent = {} }").unwrap_err();
- snapbox::assert_eq(
- r#"TOML parse error at line 1, column 9
+ assert_data_eq!(
+ error.to_string(),
+ str![[r#"
+TOML parse error at line 1, column 9
|
1 | val = { NonExistent = {} }
| ^^^^^^^^^^^
unknown variant `NonExistent`, expected one of `Plain`, `Tuple`, `NewType`, `Struct`
-"#,
- error.to_string(),
+
+"#]]
+ .raw()
);
}
#[test]
fn extra_field_returns_expected_empty_table_error() {
let error = value_from_str::<TheEnum>("{ Plain = { extra_field = 404 } }").unwrap_err();
- snapbox::assert_eq(
- r#"expected empty table
-"#,
+ assert_data_eq!(
error.to_string(),
+ str![[r#"
+expected empty table
+
+"#]]
+ .raw()
);
let error = toml::from_str::<Val>("val = { Plain = { extra_field = 404 } }").unwrap_err();
- snapbox::assert_eq(
- r#"TOML parse error at line 1, column 17
+ assert_data_eq!(
+ error.to_string(),
+ str![[r#"
+TOML parse error at line 1, column 17
|
1 | val = { Plain = { extra_field = 404 } }
| ^^^^^^^^^^^^^^^^^^^^^
expected empty table
-"#,
- error.to_string(),
+
+"#]]
+ .raw()
);
}
@@ -97,25 +118,29 @@
fn extra_field_returns_expected_empty_table_error_struct_variant() {
let error = value_from_str::<TheEnum>("{ Struct = { value = 123, extra_0 = 0, extra_1 = 1 } }")
.unwrap_err();
-
- snapbox::assert_eq(
- r#"unexpected keys in table: extra_0, extra_1, available keys: value
-"#,
+ assert_data_eq!(
error.to_string(),
+ str![[r#"
+unexpected keys in table: extra_0, extra_1, available keys: value
+
+"#]]
+ .raw()
);
let error =
toml::from_str::<Val>("val = { Struct = { value = 123, extra_0 = 0, extra_1 = 1 } }")
.unwrap_err();
-
- snapbox::assert_eq(
- r#"TOML parse error at line 1, column 33
+ assert_data_eq!(
+ error.to_string(),
+ str![[r#"
+TOML parse error at line 1, column 33
|
1 | val = { Struct = { value = 123, extra_0 = 0, extra_1 = 1 } }
| ^^^^^^^
unexpected keys in table: extra_0, extra_1, available keys: value
-"#,
- error.to_string(),
+
+"#]]
+ .raw()
);
}
@@ -189,12 +214,12 @@
#[test]
fn from_inline_table() {
assert_eq!(
- TheEnum::NewType("value".to_string()),
+ TheEnum::NewType("value".to_owned()),
value_from_str(r#"{ NewType = "value" }"#).unwrap()
);
assert_eq!(
Val {
- val: TheEnum::NewType("value".to_string()),
+ val: TheEnum::NewType("value".to_owned()),
},
toml::from_str(r#"val = { NewType = "value" }"#).unwrap()
);
@@ -203,12 +228,12 @@
#[test]
fn from_std_table() {
assert_eq!(
- TheEnum::NewType("value".to_string()),
+ TheEnum::NewType("value".to_owned()),
toml::from_str(r#"NewType = "value""#).unwrap()
);
assert_eq!(
Val {
- val: TheEnum::NewType("value".to_string()),
+ val: TheEnum::NewType("value".to_owned()),
},
toml::from_str(
r#"[val]
@@ -283,7 +308,7 @@
enums: vec![
TheEnum::Plain,
TheEnum::Tuple(-123, true),
- TheEnum::NewType("value".to_string()),
+ TheEnum::NewType("value".to_owned()),
TheEnum::Struct { value: -123 },
]
},
@@ -310,7 +335,7 @@
enums: vec![
TheEnum::Plain,
TheEnum::Tuple(-123, true),
- TheEnum::NewType("value".to_string()),
+ TheEnum::NewType("value".to_owned()),
TheEnum::Struct { value: -123 },
]
},
diff --git a/crates/toml/tests/testsuite/formatting.rs b/crates/toml/tests/testsuite/formatting.rs
index 8240d1d..195d60e 100644
--- a/crates/toml/tests/testsuite/formatting.rs
+++ b/crates/toml/tests/testsuite/formatting.rs
@@ -4,19 +4,19 @@
#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
struct User {
- pub name: String,
- pub surname: String,
+ pub(crate) name: String,
+ pub(crate) surname: String,
}
#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
struct Users {
- pub user: Vec<User>,
+ pub(crate) user: Vec<User>,
}
#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
struct TwoUsers {
- pub user0: User,
- pub user1: User,
+ pub(crate) user0: User,
+ pub(crate) user1: User,
}
#[test]
@@ -24,12 +24,12 @@
assert!(!to_string(&Users {
user: vec![
User {
- name: "John".to_string(),
- surname: "Doe".to_string(),
+ name: "John".to_owned(),
+ surname: "Doe".to_owned(),
},
User {
- name: "Jane".to_string(),
- surname: "Dough".to_string(),
+ name: "Jane".to_owned(),
+ surname: "Dough".to_owned(),
},
],
})
@@ -41,12 +41,12 @@
fn no_unnecessary_newlines_table() {
assert!(!to_string(&TwoUsers {
user0: User {
- name: "John".to_string(),
- surname: "Doe".to_string(),
+ name: "John".to_owned(),
+ surname: "Doe".to_owned(),
},
user1: User {
- name: "Jane".to_string(),
- surname: "Dough".to_string(),
+ name: "Jane".to_owned(),
+ surname: "Dough".to_owned(),
},
})
.unwrap()
diff --git a/crates/toml/tests/testsuite/macros.rs b/crates/toml/tests/testsuite/macros.rs
index e002cd9..97e933d 100644
--- a/crates/toml/tests/testsuite/macros.rs
+++ b/crates/toml/tests/testsuite/macros.rs
@@ -8,7 +8,7 @@
#[allow(unused_mut)]
let mut table = toml::value::Table::new();
$(
- table.insert($key.to_string(), $value.into());
+ table.insert($key.to_owned(), $value.into());
)*
toml::Value::Table(table)
}};
diff --git a/crates/toml/tests/testsuite/pretty.rs b/crates/toml/tests/testsuite/pretty.rs
index 369888f..e8b9626 100644
--- a/crates/toml/tests/testsuite/pretty.rs
+++ b/crates/toml/tests/testsuite/pretty.rs
@@ -1,5 +1,6 @@
use serde::ser::Serialize;
-use snapbox::assert_eq;
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
const NO_PRETTY: &str = "\
[example]
@@ -18,7 +19,7 @@
let value: toml::Value = toml::from_str(toml).unwrap();
let mut result = String::with_capacity(128);
value.serialize(toml::Serializer::new(&mut result)).unwrap();
- assert_eq(toml, &result);
+ assert_data_eq!(&result, toml.raw());
}
const PRETTY_STD: &str = "\
@@ -44,7 +45,7 @@
value
.serialize(toml::Serializer::pretty(&mut result))
.unwrap();
- assert_eq(toml, &result);
+ assert_data_eq!(&result, toml.raw());
}
const PRETTY_TRICKY: &str = r#"[example]
@@ -82,7 +83,7 @@
value
.serialize(toml::Serializer::pretty(&mut result))
.unwrap();
- assert_eq(toml, &result);
+ assert_data_eq!(&result, toml.raw());
}
const PRETTY_TABLE_ARRAY: &str = r#"[[array]]
@@ -106,7 +107,7 @@
value
.serialize(toml::Serializer::pretty(&mut result))
.unwrap();
- assert_eq(toml, &result);
+ assert_data_eq!(&result, toml.raw());
}
const TABLE_ARRAY: &str = r#"[[array]]
@@ -128,7 +129,7 @@
let value: toml::Value = toml::from_str(toml).unwrap();
let mut result = String::with_capacity(128);
value.serialize(toml::Serializer::new(&mut result)).unwrap();
- assert_eq(toml, &result);
+ assert_data_eq!(&result, toml.raw());
}
const PRETTY_EMPTY_TABLE: &str = r#"[example]
@@ -140,7 +141,7 @@
let value: toml::Value = toml::from_str(toml).unwrap();
let mut result = String::with_capacity(128);
value.serialize(toml::Serializer::new(&mut result)).unwrap();
- assert_eq(toml, &result);
+ assert_data_eq!(&result, toml.raw());
}
#[test]
@@ -165,7 +166,7 @@
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, Eq, PartialEq)]
#[serde(untagged, expecting = "expected a boolean or an integer")]
- pub enum U32OrBool {
+ pub(crate) enum U32OrBool {
U32(u32),
Bool(bool),
}
@@ -180,5 +181,5 @@
let pkg: Package = toml::from_str(raw).unwrap();
let pretty = toml::to_string_pretty(&pkg).unwrap();
- assert_eq(raw, pretty);
+ assert_data_eq!(pretty, raw.raw());
}
diff --git a/crates/toml/tests/testsuite/serde.rs b/crates/toml/tests/testsuite/serde.rs
index d7f8bc4..a2a63cd 100644
--- a/crates/toml/tests/testsuite/serde.rs
+++ b/crates/toml/tests/testsuite/serde.rs
@@ -1,8 +1,11 @@
+use std::collections::BTreeMap;
+
use serde::Deserialize;
use serde::Deserializer;
use serde::Serialize;
-use std::collections::BTreeMap;
-
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
+use snapbox::str;
use toml::map::Map;
use toml::Table;
use toml::Value;
@@ -23,7 +26,10 @@
// Through a string equivalent
println!("to_string");
- snapbox::assert_eq(t!(toml::to_string(&literal)), t!(toml::to_string(&toml)));
+ assert_data_eq!(
+ t!(toml::to_string(&toml)),
+ t!(toml::to_string(&literal)).raw()
+ );
println!("literal, from_str(toml)");
assert_eq!(literal, t!(toml::from_str(&t!(toml::to_string(&toml)))));
println!("toml, from_str(literal)");
@@ -49,20 +55,20 @@
println!("attempting parsing");
match toml::from_str::<$ty>(&$toml.to_string()) {
Ok(_) => panic!("successful"),
- Err(e) => snapbox::assert_eq($msg_parse, e.to_string()),
+ Err(e) => assert_data_eq!(e.to_string(), $msg_parse.raw()),
}
println!("attempting toml decoding");
match $toml.try_into::<$ty>() {
Ok(_) => panic!("successful"),
- Err(e) => snapbox::assert_eq($msg_decode, e.to_string()),
+ Err(e) => assert_data_eq!(e.to_string(), $msg_decode.raw()),
}
}};
}
macro_rules! map( ($($k:ident: $v:expr),*) => ({
let mut _m = Map::new();
- $(_m.insert(stringify!($k).to_string(), t!(Value::try_from($v)));)*
+ $(_m.insert(stringify!($k).to_owned(), t!(Value::try_from($v)));)*
_m
}) );
@@ -83,19 +89,19 @@
a_b: isize,
}
- equivalent! {
- Foo { a_b: 2 },
- map! { a_b: Value::Integer(2)},
- }
-
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
struct Foo2 {
#[serde(rename = "a-b")]
a_b: isize,
}
+ equivalent! {
+ Foo { a_b: 2 },
+ map! { a_b: Value::Integer(2)},
+ }
+
let mut m = Map::new();
- m.insert("a-b".to_string(), Value::Integer(2));
+ m.insert("a-b".to_owned(), Value::Integer(2));
equivalent! {
Foo2 { a_b: 2 },
m,
@@ -115,11 +121,11 @@
}
equivalent! {
- Foo { a: 2, b: Bar { a: "test".to_string() } },
+ Foo { a: 2, b: Bar { a: "test".to_owned() } },
map! {
a: Value::Integer(2),
b: map! {
- a: Value::String("test".to_string())
+ a: Value::String("test".to_owned())
}
},
}
@@ -129,9 +135,9 @@
fn application_decode_error() {
#[derive(PartialEq, Debug)]
struct Range10(usize);
- impl<'de> serde::Deserialize<'de> for Range10 {
+ impl<'de> Deserialize<'de> for Range10 {
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Range10, D::Error> {
- let x: usize = serde::Deserialize::deserialize(d)?;
+ let x: usize = Deserialize::deserialize(d)?;
if x > 10 {
Err(serde::de::Error::custom("more than 10"))
} else {
@@ -140,7 +146,7 @@
}
}
let d_good = Value::Integer(5);
- let d_bad1 = Value::String("not an isize".to_string());
+ let d_bad1 = Value::String("not an isize".to_owned());
let d_bad2 = Value::Integer(11);
assert_eq!(Range10(5), d_good.try_into().unwrap());
@@ -188,19 +194,19 @@
Foo {
a: Some(Box::new(Foo {
a: None,
- b: Bar { a: "foo".to_string(), b: 4.5 },
+ b: Bar { a: "foo".to_owned(), b: 4.5 },
})),
- b: Bar { a: "bar".to_string(), b: 1.0 },
+ b: Bar { a: "bar".to_owned(), b: 1.0 },
},
map! {
a: map! {
b: map! {
- a: Value::String("foo".to_string()),
+ a: Value::String("foo".to_owned()),
b: Value::Float(4.5)
}
},
b: map! {
- a: Value::String("bar".to_string()),
+ a: Value::String("bar".to_owned()),
b: Value::Float(1.0)
}
},
@@ -227,13 +233,13 @@
},
map: {
let mut m = BTreeMap::new();
- m.insert("bar".to_string(), 4);
- m.insert("foo".to_string(), 10);
+ m.insert("bar".to_owned(), 4);
+ m.insert("foo".to_owned(), 10);
m
}
},
map! {
- set: Value::Array(vec![Value::String("a".to_string())]),
+ set: Value::Array(vec![Value::String("a".to_owned())]),
map: map! {
bar: Value::Integer(4),
foo: Value::Integer(10)
@@ -272,20 +278,6 @@
bar: isize,
}
- error! {
- Foo,
- map! {
- bar: Value::String("a".to_string())
- },
- r#"TOML parse error at line 1, column 7
- |
-1 | bar = "a"
- | ^^^
-invalid type: string "a", expected isize
-"#,
- "invalid type: string \"a\", expected isize\nin `bar`\n"
- }
-
#[derive(Deserialize)]
#[allow(dead_code)]
struct Bar {
@@ -293,19 +285,45 @@
}
error! {
+ Foo,
+ map! {
+ bar: Value::String("a".to_owned())
+ },
+ str![[r#"
+TOML parse error at line 1, column 7
+ |
+1 | bar = "a"
+ | ^^^
+invalid type: string "a", expected isize
+
+"#]],
+ str![[r#"
+invalid type: string "a", expected isize
+in `bar`
+
+"#]]
+ }
+
+ error! {
Bar,
map! {
foo: map! {
- bar: Value::String("a".to_string())
+ bar: Value::String("a".to_owned())
}
},
- r#"TOML parse error at line 2, column 7
+ str![[r#"
+TOML parse error at line 2, column 7
|
2 | bar = "a"
| ^^^
invalid type: string "a", expected isize
-"#,
- "invalid type: string \"a\", expected isize\nin `foo.bar`\n"
+
+"#]],
+ str![[r#"
+invalid type: string "a", expected isize
+in `foo.bar`
+
+"#]]
}
}
@@ -319,13 +337,18 @@
error! {
Foo,
map! { },
- r#"TOML parse error at line 1, column 1
+ str![[r#"
+TOML parse error at line 1, column 1
|
1 |
| ^
missing field `bar`
-"#,
- "missing field `bar`\n"
+
+"#]],
+ str![[r#"
+missing field `bar`
+
+"#]]
}
}
@@ -353,13 +376,13 @@
}
equivalent! {
- Foo { a: E::Baz("foo".to_string()) },
- map! { a: Value::String("foo".to_string()) },
+ Foo { a: E::Baz("foo".to_owned()) },
+ map! { a: Value::String("foo".to_owned()) },
}
equivalent! {
- Foo { a: E::Last(Foo2 { test: "test".to_string() }) },
- map! { a: map! { test: Value::String("test".to_string()) } },
+ Foo { a: E::Last(Foo2 { test: "test".to_owned() }) },
+ map! { a: map! { test: Value::String("test".to_owned()) } },
}
}
@@ -379,7 +402,7 @@
equivalent! {
Foo { a: Sort::Desc },
- map! { a: Value::String("desc".to_string()) },
+ map! { a: Value::String("desc".to_owned()) },
}
}
@@ -402,14 +425,19 @@
Enum::String("2".to_owned(), "2".to_owned()),
],
};
- let expected = "[[inner]]
+ let raw = toml::to_string(&input).unwrap();
+ assert_data_eq!(
+ raw,
+ str![[r#"
+[[inner]]
Int = [1, 1]
[[inner]]
-String = [\"2\", \"2\"]
-";
- let raw = toml::to_string(&input).unwrap();
- snapbox::assert_eq(expected, raw);
+String = ["2", "2"]
+
+"#]]
+ .raw()
+ );
equivalent! {
Document {
@@ -452,7 +480,11 @@
},
],
};
- let expected = "[[inner]]
+ let raw = toml::to_string(&input).unwrap();
+ assert_data_eq!(
+ raw,
+ str![[r#"
+[[inner]]
[inner.Int]
first = 1
@@ -461,11 +493,12 @@
[[inner]]
[inner.String]
-first = \"2\"
-second = \"2\"
-";
- let raw = toml::to_string(&input).unwrap();
- snapbox::assert_eq(expected, raw);
+first = "2"
+second = "2"
+
+"#]]
+ .raw()
+ );
equivalent! {
Document {
@@ -566,10 +599,10 @@
// #[derive(Serialize, Deserialize, PartialEq, Debug)]
// struct Foo { a: BTreeMap<String, String> }
//
-// let v = Foo { a: map! { a, "foo".to_string() } };
+// let v = Foo { a: map! { a, "foo".to_owned() } };
// let mut d = Decoder::new(Table(map! {
// a, Table(map! {
-// a, Value::String("foo".to_string())
+// a, Value::String("foo".to_owned())
// })
// }));
// assert_eq!(v, t!(Deserialize::deserialize(&mut d)));
@@ -582,9 +615,9 @@
// #[derive(Serialize, Deserialize, PartialEq, Debug)]
// struct Foo { a: Vec<String> }
//
-// let v = Foo { a: vec!["a".to_string()] };
+// let v = Foo { a: vec!["a".to_owned()] };
// let mut d = Decoder::new(Table(map! {
-// a, Array(vec![Value::String("a".to_string())])
+// a, Array(vec![Value::String("a".to_owned())])
// }));
// assert_eq!(v, t!(Deserialize::deserialize(&mut d)));
//
@@ -747,7 +780,7 @@
#[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Serialize, Deserialize)]
struct NewType(String);
- type CustomKeyMap = std::collections::BTreeMap<NewType, u32>;
+ type CustomKeyMap = BTreeMap<NewType, u32>;
equivalent! {
[
@@ -772,18 +805,18 @@
let text = "[bar]\n\n[baz]\n\n[bazv]\na = \"foo\"\n\n[foo]\n";
let value: BTreeMap<String, CanBeEmpty> = toml::from_str(text).unwrap();
let mut expected: BTreeMap<String, CanBeEmpty> = BTreeMap::new();
- expected.insert("bar".to_string(), CanBeEmpty::default());
- expected.insert("baz".to_string(), CanBeEmpty::default());
+ expected.insert("bar".to_owned(), CanBeEmpty::default());
+ expected.insert("baz".to_owned(), CanBeEmpty::default());
expected.insert(
- "bazv".to_string(),
+ "bazv".to_owned(),
CanBeEmpty {
- a: Some("foo".to_string()),
+ a: Some("foo".to_owned()),
b: None,
},
);
- expected.insert("foo".to_string(), CanBeEmpty::default());
+ expected.insert("foo".to_owned(), CanBeEmpty::default());
assert_eq!(value, expected);
- snapbox::assert_eq(text, toml::to_string(&value).unwrap());
+ assert_data_eq!(toml::to_string(&value).unwrap(), text.raw());
}
#[test]
@@ -830,17 +863,17 @@
equivalent! {
map! {
- obj: Object(vec!["foo".to_string()], vec![], vec!["bar".to_string(), "baz".to_string()])
+ obj: Object(vec!["foo".to_owned()], vec![], vec!["bar".to_owned(), "baz".to_owned()])
},
map! {
obj: Value::Array(vec![
Value::Array(vec![
- Value::String("foo".to_string()),
+ Value::String("foo".to_owned()),
]),
Value::Array(vec![]),
Value::Array(vec![
- Value::String("bar".to_string()),
- Value::String("baz".to_string()),
+ Value::String("bar".to_owned()),
+ Value::String("baz".to_owned()),
]),
])
},
@@ -851,7 +884,7 @@
fn json_interoperability() {
#[derive(Serialize, Deserialize)]
struct Foo {
- any: toml::Value,
+ any: Value,
}
let _foo: Foo = serde_json::from_str(
@@ -884,7 +917,7 @@
#[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(untagged, expecting = "expected a boolean or an integer")]
- pub enum U32OrBool {
+ pub(crate) enum U32OrBool {
U32(u32),
Bool(bool),
}
@@ -901,14 +934,16 @@
"#,
);
let err = res.unwrap_err();
- snapbox::assert_eq(
- r#"TOML parse error at line 8, column 9
+ assert_data_eq!(
+ err.to_string(),
+ str![[r#"
+TOML parse error at line 8, column 9
|
8 | debug = 'a'
| ^^^
expected a boolean or an integer
-"#,
- err.to_string(),
+
+"#]]
);
let res: Result<Package, _> = toml::from_str(
@@ -923,14 +958,16 @@
"#,
);
let err = res.unwrap_err();
- snapbox::assert_eq(
- r#"TOML parse error at line 8, column 17
+ assert_data_eq!(
+ err.to_string(),
+ str![[r#"
+TOML parse error at line 8, column 17
|
8 | dev = { debug = 'a' }
| ^^^
expected a boolean or an integer
-"#,
- err.to_string(),
+
+"#]]
);
}
@@ -945,10 +982,12 @@
name: "foo".to_owned(),
};
let raw = toml::to_string_pretty(&package).unwrap();
- snapbox::assert_eq(
- r#"name = "foo"
-"#,
+ assert_data_eq!(
raw,
+ str![[r#"
+name = "foo"
+
+"#]]
);
}
@@ -970,11 +1009,13 @@
},
};
let raw = toml::to_string_pretty(&package).unwrap();
- snapbox::assert_eq(
- r#"[package]
-name = "foo"
-"#,
+ assert_data_eq!(
raw,
+ str![[r#"
+[package]
+name = "foo"
+
+"#]]
);
}
@@ -997,7 +1038,7 @@
#[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(untagged, expecting = "expected a boolean or an integer")]
- pub enum U32OrBool {
+ pub(crate) enum U32OrBool {
U32(u32),
Bool(bool),
}
@@ -1010,11 +1051,13 @@
},
};
let raw = toml::to_string_pretty(&package).unwrap();
- snapbox::assert_eq(
- r#"[profile.dev]
-debug = true
-"#,
+ assert_data_eq!(
raw,
+ str![[r#"
+[profile.dev]
+debug = true
+
+"#]]
);
}
@@ -1046,7 +1089,7 @@
#[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(untagged, expecting = "expected a boolean or an integer")]
- pub enum U32OrBool {
+ pub(crate) enum U32OrBool {
U32(u32),
Bool(bool),
}
@@ -1065,8 +1108,10 @@
},
};
let raw = toml::to_string_pretty(&package).unwrap();
- snapbox::assert_eq(
- r#"cargo_features = []
+ assert_data_eq!(
+ raw,
+ str![[r#"
+cargo_features = []
[package]
name = "foo"
@@ -1075,8 +1120,8 @@
[profile.dev]
debug = true
-"#,
- raw,
+
+"#]]
);
}
@@ -1102,9 +1147,12 @@
let native = Foo { a_b: u64::MAX };
let err = Table::try_from(native.clone()).unwrap_err();
- snapbox::assert_eq("u64 value was too large", err.to_string());
+ assert_data_eq!(err.to_string(), str!["u64 value was too large"].raw());
let err = toml::to_string(&native).unwrap_err();
- snapbox::assert_eq("out-of-range value for u64 type", err.to_string());
+ assert_data_eq!(
+ err.to_string(),
+ str!["out-of-range value for u64 type"].raw()
+ );
}
#[test]
@@ -1150,7 +1198,7 @@
fn unsupported_root_type() {
let native = "value";
let err = toml::to_string_pretty(&native).unwrap_err();
- snapbox::assert_eq("unsupported rust type", err.to_string());
+ assert_data_eq!(err.to_string(), str!["unsupported rust type"].raw());
}
#[test]
@@ -1162,7 +1210,7 @@
let native = Foo { unused: () };
let err = toml::to_string_pretty(&native).unwrap_err();
- snapbox::assert_eq("unsupported unit type", err.to_string());
+ assert_data_eq!(err.to_string(), str!["unsupported unit type"].raw());
}
#[test]
@@ -1174,6 +1222,7 @@
}
#[derive(Deserialize)]
+ #[allow(dead_code)]
enum Compare {
Gt(u32),
}
@@ -1216,9 +1265,117 @@
#[test]
fn datetime_offset_issue_496() {
let original = "value = 1911-01-01T10:11:12-00:36\n";
- let toml = original.parse::<toml::Table>().unwrap();
+ let toml = original.parse::<Table>().unwrap();
let output = toml.to_string();
- snapbox::assert_eq(original, output);
+ assert_data_eq!(output, original.raw());
+}
+
+#[test]
+fn serialize_date() {
+ use toml::value::Date;
+
+ #[derive(Serialize)]
+ struct Document {
+ date: Date,
+ }
+
+ let input = Document {
+ date: Date {
+ year: 2024,
+ month: 1,
+ day: 1,
+ },
+ };
+ let raw = toml::to_string(&input).unwrap();
+ assert_data_eq!(
+ raw,
+ str![[r#"
+date = 2024-01-01
+
+"#]]
+ .raw()
+ );
+}
+
+#[test]
+fn serialize_time() {
+ use toml::value::Time;
+
+ #[derive(Serialize)]
+ struct Document {
+ date: Time,
+ }
+
+ let input = Document {
+ date: Time {
+ hour: 5,
+ minute: 0,
+ second: 0,
+ nanosecond: 0,
+ },
+ };
+ let raw = toml::to_string(&input).unwrap();
+ assert_data_eq!(
+ raw,
+ str![[r#"
+date = 05:00:00
+
+"#]]
+ .raw()
+ );
+}
+
+#[test]
+fn deserialize_date() {
+ use toml::value::Date;
+
+ #[derive(Debug, Deserialize)]
+ struct Document {
+ date: Date,
+ }
+
+ let document: Document = toml::from_str("date = 2024-01-01").unwrap();
+ assert_eq!(
+ document.date,
+ Date {
+ year: 2024,
+ month: 1,
+ day: 1
+ }
+ );
+
+ let err = toml::from_str::<Document>("date = 2024-01-01T05:00:00").unwrap_err();
+ assert_data_eq!(
+ err.message(),
+ str!["invalid type: local datetime, expected local date"]
+ );
+}
+
+#[test]
+fn deserialize_time() {
+ use toml::value::Time;
+
+ #[derive(Debug, Deserialize)]
+ struct Document {
+ time: Time,
+ }
+
+ let document: Document = toml::from_str("time = 05:00:00").unwrap();
+ assert_eq!(
+ document.time,
+ Time {
+ hour: 5,
+ minute: 0,
+ second: 0,
+ nanosecond: 0,
+ }
+ );
+
+ let err = toml::from_str::<Document>("time = 2024-01-01T05:00:00").unwrap_err();
+ assert_data_eq!(
+ err.message(),
+ str!["invalid type: local datetime, expected local time"]
+ );
}
#[test]
@@ -1231,15 +1388,21 @@
let input = Document {
values: vec![Some(1), Some(2), Some(3)],
};
- let expected = "values = [1, 2, 3]\n";
let raw = toml::to_string(&input).unwrap();
- snapbox::assert_eq(expected, raw);
+ assert_data_eq!(
+ raw,
+ str![[r#"
+values = [1, 2, 3]
+
+"#]]
+ .raw()
+ );
let input = Document {
values: vec![Some(1), None, Some(3)],
};
let err = toml::to_string(&input).unwrap_err();
- snapbox::assert_eq("unsupported None value", err.to_string());
+ assert_data_eq!(err.to_string(), str!["unsupported None value"].raw());
}
#[test]
@@ -1262,7 +1425,10 @@
OptionalField { x: 3, y: Some(7) },
],
};
- let expected = "\
+ let raw = toml::to_string(&input).unwrap();
+ assert_data_eq!(
+ raw,
+ str![[r#"
[[values]]
x = 0
y = 4
@@ -1274,9 +1440,10 @@
[[values]]
x = 3
y = 7
-";
- let raw = toml::to_string(&input).unwrap();
- snapbox::assert_eq(expected, raw);
+
+"#]]
+ .raw()
+ );
let input = Document {
values: vec![
@@ -1285,7 +1452,10 @@
OptionalField { x: 3, y: Some(7) },
],
};
- let expected = "\
+ let raw = toml::to_string(&input).unwrap();
+ assert_data_eq!(
+ raw,
+ str![[r#"
[[values]]
x = 0
y = 4
@@ -1296,9 +1466,10 @@
[[values]]
x = 3
y = 7
-";
- let raw = toml::to_string(&input).unwrap();
- snapbox::assert_eq(expected, raw);
+
+"#]]
+ .raw()
+ );
}
#[test]
@@ -1328,10 +1499,11 @@
Choice::Optional(OptionalField { x: 3, y: Some(7) }),
],
};
- let expected = "values = [{ Optional = { x = 0, y = 4 } }, \"Empty\", { Optional = { x = 2, y = 5 } }, { Optional = { x = 3, y = 7 } }]
-";
let raw = toml::to_string(&input).unwrap();
- snapbox::assert_eq(expected, raw);
+ assert_data_eq!(raw, str![[r#"
+values = [{ Optional = { x = 0, y = 4 } }, "Empty", { Optional = { x = 2, y = 5 } }, { Optional = { x = 3, y = 7 } }]
+
+"#]].raw());
let input = Document {
values: vec![
@@ -1341,10 +1513,11 @@
Choice::Optional(OptionalField { x: 3, y: Some(7) }),
],
};
- let expected = "values = [{ Optional = { x = 0, y = 4 } }, \"Empty\", { Optional = { x = 2 } }, { Optional = { x = 3, y = 7 } }]
-";
let raw = toml::to_string(&input).unwrap();
- snapbox::assert_eq(expected, raw);
+ assert_data_eq!(raw, str![[r#"
+values = [{ Optional = { x = 0, y = 4 } }, "Empty", { Optional = { x = 2 } }, { Optional = { x = 3, y = 7 } }]
+
+"#]].raw());
}
#[test]
diff --git a/crates/toml/tests/testsuite/spanned.rs b/crates/toml/tests/testsuite/spanned.rs
index 760c73aa..daf7601 100644
--- a/crates/toml/tests/testsuite/spanned.rs
+++ b/crates/toml/tests/testsuite/spanned.rs
@@ -5,11 +5,14 @@
use std::fmt::Debug;
use serde::Deserialize;
+use snapbox::assert_data_eq;
+use snapbox::prelude::*;
+use snapbox::str;
use toml::value::Datetime;
use toml::Spanned;
/// A set of good datetimes.
-pub fn good_datetimes() -> Vec<&'static str> {
+pub(crate) fn good_datetimes() -> Vec<&'static str> {
vec![
"1997-09-09T09:09:09Z",
"1997-09-09T09:09:09+09:09",
@@ -248,14 +251,16 @@
fake = 1"#,
)
.unwrap_err();
- snapbox::assert_eq(
- "\
+ assert_data_eq!(
+ error.to_string(),
+ str![[r#"
TOML parse error at line 3, column 1
|
3 | fake = 1
| ^^^^
unknown field `fake`, expected `real`
-",
- error.to_string(),
+
+"#]]
+ .raw()
);
}
diff --git a/crates/toml/tests/testsuite/tables_last.rs b/crates/toml/tests/testsuite/tables_last.rs
index b003557..d94f2b1 100644
--- a/crates/toml/tests/testsuite/tables_last.rs
+++ b/crates/toml/tests/testsuite/tables_last.rs
@@ -54,11 +54,11 @@
}
let comp1 = Component {
- base: "b".to_string(),
+ base: "b".to_owned(),
transform: (1.0, 0.0, 0.0, 1.0, 0.0, 0.0),
};
let comp2 = Component {
- base: "c".to_string(),
+ base: "c".to_owned(),
transform: (1.0, 0.0, 0.0, 1.0, 0.0, 0.0),
};
let components = vec![comp1, comp2];
@@ -68,40 +68,40 @@
Point {
x: 3.0,
y: 4.0,
- pt_type: "line".to_string(),
+ pt_type: "line".to_owned(),
},
Point {
x: 5.0,
y: 6.0,
- pt_type: "line".to_string(),
+ pt_type: "line".to_owned(),
},
],
vec![
Point {
x: 0.0,
y: 0.0,
- pt_type: "move".to_string(),
+ pt_type: "move".to_owned(),
},
Point {
x: 7.0,
y: 9.0,
- pt_type: "offcurve".to_string(),
+ pt_type: "offcurve".to_owned(),
},
Point {
x: 8.0,
y: 10.0,
- pt_type: "offcurve".to_string(),
+ pt_type: "offcurve".to_owned(),
},
Point {
x: 11.0,
y: 12.0,
- pt_type: "curve".to_string(),
+ pt_type: "curve".to_owned(),
},
],
];
let g1 = Glyph {
- contours,
components,
+ contours,
};
let s = toml::to_string_pretty(&g1).unwrap();
@@ -149,13 +149,13 @@
}
toml::to_string(&C {
a: A {
- a: "aa".to_string(),
- b: "ab".to_string(),
+ a: "aa".to_owned(),
+ b: "ab".to_owned(),
},
- b: vec!["b".to_string()],
+ b: vec!["b".to_owned()],
c: vec![B {
- a: "cba".to_string(),
- b: vec!["cbb".to_string()],
+ a: "cba".to_owned(),
+ b: vec!["cbb".to_owned()],
}],
})
.unwrap();
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index 60885f6..6b41d7f 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -420,7 +420,7 @@
"tokio-stream",
"tokio-test",
"tokio-util",
- "toml 0.8.10",
+ "toml 0.8.19",
"toml_datetime",
"toml_edit 0.22.20",
"tonic",
@@ -5315,9 +5315,9 @@
[[package]]
name = "toml"
-version = "0.8.10"
+version = "0.8.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
dependencies = [
"serde",
"serde_spanned",
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index c30ca3d..c374ef4 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -335,7 +335,7 @@
tokio-stream = "=0.1.17"
tokio-test = "=0.4.2"
tokio-util = "=0.7.13"
-toml = "=0.8.10"
+toml = "=0.8.19"
toml_datetime = "=0.6.8"
toml_edit = "=0.22.20"
tonic = "=0.11.0"