From 3e5843101130a19bf2ce3df4a48ae3b69dfb98a9 Mon Sep 17 00:00:00 2001 From: Edgar Luque Date: Tue, 31 Oct 2023 12:22:44 +0100 Subject: [PATCH] update dependencies and minor style changes --- Cargo.lock | 680 +++++++++++++++++------------ Cargo.toml | 6 +- twmap-tools/Cargo.toml | 10 +- twmap-tools/src/bin/twmap-check.rs | 4 +- twmap-tools/src/bin/twmap-edit.rs | 4 +- twmap/Cargo.toml | 28 +- twmap/src/automapper/execute.rs | 2 +- twmap/src/automapper/parse.rs | 2 +- twmap/src/datafile/parse.rs | 13 +- twmap/src/map/checks.rs | 4 +- twmap/src/map/edit/mod.rs | 2 +- twmap/src/map/edit/scale.rs | 3 +- twmap/src/map/impls.rs | 6 - twmap/src/map/map_dir.rs | 4 +- twmap/src/map/mod.rs | 6 +- twmap/src/map/parse.rs | 17 +- twmap/tests/datafile.rs | 2 +- twmap/tests/map.rs | 10 +- 18 files changed, 459 insertions(+), 344 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 693e0d6..d129ca9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,40 +10,83 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "0.7.19" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] -name = "ansi_term" -version = "0.12.1" +name = "android-tzdata" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ - "winapi", + "libc", ] [[package]] -name = "approx" -version = "0.5.1" +name = "anstream" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" dependencies = [ - "num-traits", + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "anstyle-parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +dependencies = [ + "utf8parse", ] [[package]] -name = "atty" -version = "0.2.14" +name = "anstyle-query" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "hermit-abi", - "libc", - "winapi", + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +dependencies = [ + "anstyle", + "windows-sys", +] + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", ] [[package]] @@ -64,52 +107,61 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] [[package]] name = "bumpalo" -version = "3.11.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bytemuck" -version = "1.12.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.2.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9e1f5fa78f69496407a27ae9ed989e3c3b072310286f5ef385525e4cbc24a9" +checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.38", ] [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cc" -version = "1.0.73" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] [[package]] name = "cfg-if" @@ -117,44 +169,57 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "windows-targets", +] + [[package]] name = "clap" -version = "3.2.22" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750" +checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" dependencies = [ - "atty", - "bitflags", + "clap_builder", "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" +dependencies = [ + "anstream", + "anstyle", "clap_lex", - "indexmap", - "once_cell", "strsim", - "termcolor", - "textwrap", ] [[package]] name = "clap_derive" -version = "3.2.18" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" dependencies = [ "heck", - "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 2.0.38", ] [[package]] name = "clap_lex" -version = "0.2.4" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] name = "color_quant" @@ -162,11 +227,23 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] @@ -198,28 +275,44 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.5" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", ] +[[package]] +name = "errno" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "fastrand" -version = "1.8.0" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fdeflate" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" dependencies = [ - "instant", + "simd-adler32", ] [[package]] name = "fixed" -version = "1.19.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0371cd413fb63f8ec1b9eb4dff47fa2c88b21abc681771234c84808b9920991" +checksum = "02c69ce7e7c0f17aa18fdd9d0de39727adb9c6281f2ad12f57cbe54ae6e76e7d" dependencies = [ "az", "bytemuck", @@ -231,9 +324,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", "libz-sys", @@ -242,26 +335,25 @@ dependencies = [ [[package]] name = "flexi_logger" -version = "0.23.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a12e3b5a8775259ee83ac38aea8cdf9c3a1667c02178d207378c0837808fa9" +checksum = "64d1984eeb4ccb9a6f3fa5f2a1850d34afed6fd4ffcd1513b691eef9dda0f057" dependencies = [ - "ansi_term", - "atty", + "chrono", "glob", + "is-terminal", "lazy_static", "log", + "nu-ansi-term", "regex", - "rustversion", "thiserror", - "time", ] [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -269,9 +361,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.7" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "js-sys", @@ -282,45 +374,60 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "half" -version = "2.1.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad6a9459c9c30b177b925162351f97e7d967c7ea8bab3b8352805327daf45554" +checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" dependencies = [ + "cfg-if", "crunchy", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "heck" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "heck" -version = "0.4.0" +name = "hermit-abi" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "iana-time-zone" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ - "libc", + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", ] [[package]] name = "image" -version = "0.24.3" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e30ca2ecf7666107ff827a8e481de6a132a9b687ed3bb20bb1c144a36c00964" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" dependencies = [ "bytemuck", "byteorder", @@ -331,35 +438,27 @@ dependencies = [ ] [[package]] -name = "indexmap" -version = "1.9.1" +name = "is-terminal" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "autocfg", - "hashbrown", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", + "hermit-abi", + "rustix", + "windows-sys", ] [[package]] name = "itoa" -version = "1.0.3" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -372,52 +471,57 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.132" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "libz-sys" -version = "1.1.8" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "pkg-config", "vcpkg", ] +[[package]] +name = "linux-raw-sys" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" + [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "matrixmultiply" -version = "0.3.2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84" +checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" dependencies = [ + "autocfg", "rawpointer", ] [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "miniz_oxide" -version = "0.5.4" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", + "simd-adler32", ] [[package]] @@ -433,11 +537,20 @@ dependencies = [ "rawpointer", ] +[[package]] +name = "nu-ansi-term" +version = "0.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68" +dependencies = [ + "windows-sys", +] + [[package]] name = "num-complex" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -465,27 +578,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - [[package]] name = "once_cell" -version = "1.14.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opus_headers" @@ -493,68 +597,39 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afbb993947f111397c2bc536944f8dac7f54a4e73383d478efe1990b56404b60" -[[package]] -name = "os_str_bytes" -version = "6.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" - [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "png" -version = "0.17.6" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", + "fdeflate", "flate2", "miniz_oxide", ] -[[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", - "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", -] - [[package]] name = "proc-macro2" -version = "1.0.43" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.21" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -567,38 +642,41 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "redox_syscall" -version = "0.2.16" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "regex" -version = "1.6.0" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", + "regex-automata", "regex-syntax", ] [[package]] -name = "regex-syntax" -version = "0.6.27" +name = "regex-automata" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "regex-syntax" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rustc_version" @@ -610,22 +688,29 @@ dependencies = [ ] [[package]] -name = "rustversion" -version = "1.0.9" +name = "rustix" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "sanitize-filename" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c502bdb638f1396509467cb0580ef3b29aa2a45c5d43e5d84928241280296c" +checksum = "2ed72fbaf78e6f2d41744923916966c4fbe3d7c74e3037a8ee482f1115572603" dependencies = [ "lazy_static", "regex", @@ -633,35 +718,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.14" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.144" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" +checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.144" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" +checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.38", ] [[package]] name = "serde_json" -version = "1.0.85" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -670,15 +755,21 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", "digest", ] +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + [[package]] name = "strsim" version = "0.10.0" @@ -703,14 +794,14 @@ checksum = "e738957e98ce93e9ecad0df60ffe77bd8511a9a1c503f6def8a4cd28ae53b59a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "syn" -version = "1.0.99" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -718,78 +809,55 @@ dependencies = [ ] [[package]] -name = "tempfile" -version = "3.3.0" +name = "syn" +version = "2.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" dependencies = [ - "cfg-if", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "termcolor" -version = "1.1.3" +name = "tempfile" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ - "winapi-util", + "cfg-if", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys", ] -[[package]] -name = "textwrap" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" - [[package]] name = "thiserror" -version = "1.0.35" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c53f98874615aea268107765aa1ed8f6116782501d18e53d08b471733bea6c85" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.35" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8b463991b4eab2d801e724172285ec4195c650e8ec79b149e6c2a8e6dd3f783" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.38", ] -[[package]] -name = "time" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" -dependencies = [ - "itoa", - "libc", - "num_threads", - "time-macros", -] - -[[package]] -name = "time-macros" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" - [[package]] name = "twmap" version = "0.11.0" dependencies = [ "az", - "bitflags", + "bitflags 2.4.1", "bytemuck", "fixed", "flate2", @@ -821,15 +889,21 @@ dependencies = [ [[package]] name = "typenum" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[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" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "vcpkg" @@ -839,9 +913,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vek" -version = "0.15.10" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8085882662f9bc47fc8b0cdafa5e19df8f592f650c02b9083da8d45ac9eebd17" +checksum = "c85158043f3bc1fac596d59a77e07948da340b9951b451ed4cb4a8c480aa2157" dependencies = [ "approx", "az", @@ -865,9 +939,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -875,24 +949,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn", + "syn 2.0.38", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -900,50 +974,94 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.38", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] -name = "winapi" -version = "0.3.9" +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "windows-targets", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] [[package]] -name = "winapi-util" -version = "0.1.5" +name = "windows-targets" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "winapi", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" diff --git a/Cargo.toml b/Cargo.toml index a9f3749..954fb09 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,4 +3,8 @@ members = ["twmap", "twmap-tools"] resolver = "2" [profile.release] -overflow-checks = true \ No newline at end of file +overflow-checks = true + +[workspace.dependencies] +vek = { version = "0.16.1", default-features = false, features = ["az", "rgba", "std", "uv"] } +image = { version = "0.24.7", default-features = false, features = ["png"] } diff --git a/twmap-tools/Cargo.toml b/twmap-tools/Cargo.toml index 614e345..e2d04e2 100644 --- a/twmap-tools/Cargo.toml +++ b/twmap-tools/Cargo.toml @@ -9,9 +9,9 @@ repository = "https://gitlab.com/Patiga/twmap" keywords = ["teeworlds", "ddnet"] [dependencies] -clap = { version = "3.2.16", features = ["derive"] } -flexi_logger = "0.23.0" -image = { version = "0.24.1", default-features = false } -sha2 = "0.10.2" +clap = { version = "4.4.7", features = ["derive"] } +flexi_logger = "0.27.2" +image = { workspace = true, default-features = false } +sha2 = "0.10.8" twmap = { path = "../twmap", version = "0.11.0" } -vek = { version = "0.15.10", default-features = false, features = ["az", "rgba", "std", "uv"] } +vek = { workspace = true, default-features = false, features = ["az", "rgba", "std", "uv"] } diff --git a/twmap-tools/src/bin/twmap-check.rs b/twmap-tools/src/bin/twmap-check.rs index 8f7bff2..348bd04 100644 --- a/twmap-tools/src/bin/twmap-check.rs +++ b/twmap-tools/src/bin/twmap-check.rs @@ -22,8 +22,8 @@ struct Cli { #[clap(required = true, value_parser)] maps: Vec, /// Level of verbosity: default => errors, -v => also warn logs, -vv => also info logs - #[clap(long, short = 'v', parse(from_occurrences))] - verbose: i8, + #[clap(long, short = 'v', action = clap::ArgAction::Count)] + verbose: u8, /// Only parse the datafile (intermediate representation), not the map #[clap(long, value_parser, group = "parse_options")] datafile_only: bool, diff --git a/twmap-tools/src/bin/twmap-edit.rs b/twmap-tools/src/bin/twmap-edit.rs index b68d995..2cdffce 100644 --- a/twmap-tools/src/bin/twmap-edit.rs +++ b/twmap-tools/src/bin/twmap-edit.rs @@ -28,8 +28,8 @@ struct Cli { #[clap(long, short = 'm', value_parser)] mirror: bool, /// Rotate the map clockwise, this flag can be used multiple times - #[clap(long, short = 'r', parse(from_occurrences))] - rotate: i8, + #[clap(long, short = 'r', action = clap::ArgAction::Count)] + rotate: u8, /// Mirror the map (switches left and right), applies before rotating #[clap(long, value_parser = parse_scale)] scale: Option, diff --git a/twmap/Cargo.toml b/twmap/Cargo.toml index a600c5f..66d0bf3 100644 --- a/twmap/Cargo.toml +++ b/twmap/Cargo.toml @@ -11,21 +11,21 @@ keywords = ["teeworlds", "ddnet"] [dependencies] az = "1.2.1" -bitflags = "1.3.2" -bytemuck = { version = "1.12.1", features = ["derive"] } -fixed = { version = "1.17.0", features = ["num-traits", "serde-str"] } -flate2 = { version = "1.0.24", features = ["zlib"] } -getrandom = { version = "0.2.7", features = ["js"] } -image = { version = "0.24.1", default-features = false, features = ["png"] } -log = "0.4.14" -ndarray = "0.15.4" +bitflags = "2.4.1" +bytemuck = { version = "1.14.0", features = ["derive"] } +fixed = { version = "1.24.0", features = ["num-traits", "serde-str"] } +flate2 = { version = "1.0.28", features = ["zlib"] } +getrandom = { version = "0.2.10", features = ["js"] } +image = { workspace = true, default-features = false, features = ["png"] } +log = "0.4.20" +ndarray = "0.15.6" opus_headers = "0.1.2" -sanitize-filename = "0.4.0" -serde = { version = "1.0.136", features = ["derive"] } -serde_json = "1.0.79" +sanitize-filename = "0.5.0" +serde = { version = "1.0.190", features = ["derive"] } +serde_json = "1.0.108" structview = "1.1.0" -thiserror = "1.0.30" -vek = { version = "0.15.10", default-features = false, features = ["az", "rgba", "std", "uv"] } +thiserror = "1.0.50" +vek = { workspace = true, default-features = false, features = ["az", "rgba", "std", "uv"] } [dev-dependencies] -tempfile = "3.3.0" +tempfile = "3.8.1" diff --git a/twmap/src/automapper/execute.rs b/twmap/src/automapper/execute.rs index 8e77e85..a493362 100644 --- a/twmap/src/automapper/execute.rs +++ b/twmap/src/automapper/execute.rs @@ -56,7 +56,7 @@ const DEFAULT_RULE: Rule = Rule { condition: Condition::Full, }; -fn hash_u32(mut n: u32) -> u32 { +const fn hash_u32(mut n: u32) -> u32 { n = n.wrapping_add(1); n ^= n >> 17; n = n.wrapping_mul(0xed5ad4bb); diff --git a/twmap/src/automapper/parse.rs b/twmap/src/automapper/parse.rs index 3836e0a..a0f92a6 100644 --- a/twmap/src/automapper/parse.rs +++ b/twmap/src/automapper/parse.rs @@ -213,7 +213,7 @@ const NEW_CONDITION: Pattern = Pattern::Token("Pos"); const NEW_RANDOM: Pattern = Pattern::Token("Random"); impl Pattern { - fn inner(&self) -> &'static str { + const fn inner(&self) -> &'static str { match self { Pattern::Prefix(p) => p, Pattern::Token(t) => t, diff --git a/twmap/src/datafile/parse.rs b/twmap/src/datafile/parse.rs index 40aa580..4c6b81c 100644 --- a/twmap/src/datafile/parse.rs +++ b/twmap/src/datafile/parse.rs @@ -94,7 +94,7 @@ enum MagicError { fn parse_magic(data: &[u8]) -> Result<&[u8], MagicError> { let (magic, data) = view::<[u8; 4]>(data)?; - if magic != "DATA".as_bytes() && magic != "ATAD".as_bytes() { + if magic != b"DATA" && magic != b"ATAD" { Err(MagicError::Incorrect) } else { Ok(data) @@ -411,12 +411,15 @@ impl RawDatafile<'_> { parse_offsets(data, header.num_items).map_err(DatafileParseErr::ItemOffsets)?; let (data_offsets, mut data) = parse_offsets(data, header.num_data).map_err(DatafileParseErr::DataOffsets)?; - let mut data_sizes = None; - if header.version.to_int() >= 4 { + + let data_sizes = if header.version.to_int() >= 4 { let (new_data_sizes, new_data) = parse_data_sizes(data, header.num_data)?; data = new_data; - data_sizes = Some(new_data_sizes); - } + Some(new_data_sizes) + } else { + None + }; + let (items, data) = ViewedItem::parse(data, item_types)?; let (data_items, data) = parse_data_items(data, data_offsets, header.data_block_size)?; if !data.is_empty() { diff --git a/twmap/src/map/checks.rs b/twmap/src/map/checks.rs index a453305..95fd134 100644 --- a/twmap/src/map/checks.rs +++ b/twmap/src/map/checks.rs @@ -303,7 +303,7 @@ pub enum EnvelopeKind { } impl Envelope { - fn kind(&self) -> EnvelopeKind { + const fn kind(&self) -> EnvelopeKind { match self { Envelope::Position(_) => EnvelopeKind::Position, Envelope::Color(_) => EnvelopeKind::Color, @@ -787,7 +787,7 @@ pub trait TileChecking { } impl TileFlags { - fn check(self) -> bool { + const fn check(self) -> bool { TileFlags::from_bits(self.bits()).is_some() } } diff --git a/twmap/src/map/edit/mod.rs b/twmap/src/map/edit/mod.rs index dc340a5..1b3b7f0 100644 --- a/twmap/src/map/edit/mod.rs +++ b/twmap/src/map/edit/mod.rs @@ -200,7 +200,7 @@ impl EmbeddedImage { } impl Version { - fn mapres_paths(&self) -> &'static [&'static str] { + const fn mapres_paths(&self) -> &'static [&'static str] { match self { Version::DDNet06 => &[ "/usr/share/ddnet/data/mapres", diff --git a/twmap/src/map/edit/scale.rs b/twmap/src/map/edit/scale.rs index b5be21c..c832cbe 100644 --- a/twmap/src/map/edit/scale.rs +++ b/twmap/src/map/edit/scale.rs @@ -157,7 +157,8 @@ impl EmbeddedImage { for (index_usize, id_usize) in keep_tiles .iter() .enumerate() - .filter_map(|(id, b)| b.then(|| id)) + .filter(|&(_, b)| *b) + .map(|(id, _)| id) .enumerate() { let image_index = index_usize / tiles_per_image.checked_as::()?; diff --git a/twmap/src/map/impls.rs b/twmap/src/map/impls.rs index 84b73a2..91b1db7 100644 --- a/twmap/src/map/impls.rs +++ b/twmap/src/map/impls.rs @@ -356,12 +356,6 @@ impl Envelope { } } -impl Default for CurveKind { - fn default() -> Self { - CurveKind::Linear - } -} - impl Default for Group { fn default() -> Self { Group { diff --git a/twmap/src/map/map_dir.rs b/twmap/src/map/map_dir.rs index 0e089bc..dc6e2d5 100644 --- a/twmap/src/map/map_dir.rs +++ b/twmap/src/map/map_dir.rs @@ -351,7 +351,7 @@ fn create_dir_mapping( .unwrap() .to_string(); if file_mapping.contains_key(&name) { - return Err(MapDirErrorKind::DuplicateImageName).err_with_path(path.join(&name))?; + Err(MapDirErrorKind::DuplicateImageName).err_with_path(path.join(&name))?; } file_mapping.insert(name, i.try_to::()); } @@ -474,7 +474,7 @@ impl From for DirVersion { fn from(version: Version) -> Self { let mut created_by = env!("CARGO_PKG_NAME").to_string(); created_by.push(' '); - created_by.extend(env!("CARGO_PKG_VERSION").chars()); + created_by.push_str(env!("CARGO_PKG_VERSION")); DirVersion { version, created_by, diff --git a/twmap/src/map/mod.rs b/twmap/src/map/mod.rs index 9767695..4e963ed 100644 --- a/twmap/src/map/mod.rs +++ b/twmap/src/map/mod.rs @@ -74,7 +74,6 @@ pub enum Version { /// They are represented using the crate `fixed`. /// Position and size fixed point integers are always chosen so that 1 always translates to the width of 1 tile. /// The other usages are usually chosen so that 0 = 0%, 1 = 100%. - #[derive(Debug, Clone, Eq, PartialEq)] pub struct TwMap { /// Determines what version this map should be saved as @@ -225,7 +224,7 @@ pub struct BezierCurve { pub handle_r: Vec2, } -#[derive(Debug, Eq, PartialEq, Copy, Clone, Serialize, Deserialize)] +#[derive(Debug, Eq, PartialEq, Copy, Clone, Serialize, Deserialize, Default)] #[serde(rename_all = "snake_case", tag = "type")] /// Belongs to a envelope point. /// Describes the change in value from this point to the next. @@ -237,6 +236,7 @@ pub enum CurveKind { Step, /// Linear interpolation between the two points. /// Math: `frac` + #[default] Linear, /// First slow, later much faster value change. /// Math: `frac^3` @@ -321,7 +321,7 @@ bitflags! { /// Up is the default orientation of a physics tile. /// While this could've been no issue, directional physics tiles actually have broken physics when in another state. #[repr(C)] - #[derive(Default, Serialize, Deserialize)] + #[derive(Debug, Default, Serialize, Deserialize, Clone, Copy, Hash, Eq, PartialEq)] #[serde(into = "map_dir::DirTileFlags", try_from = "map_dir::DirTileFlags")] pub struct TileFlags: u8 { /// Mirrors the tile horizontally, switching Left <-> Right. diff --git a/twmap/src/map/parse.rs b/twmap/src/map/parse.rs index 96a304e..8e3bba3 100644 --- a/twmap/src/map/parse.rs +++ b/twmap/src/map/parse.rs @@ -238,7 +238,7 @@ pub(crate) enum ItemType { } impl ItemType { - pub(crate) fn identifier(&self) -> Identifier { + pub(crate) const fn identifier(&self) -> Identifier { match self { ItemType::Version => Identifier::TypeId(0), ItemType::Info => Identifier::TypeId(1), @@ -365,7 +365,7 @@ impl fmt::Display for BoolConversionError { } } -fn convert_bool(value: i32, ident: &'static str) -> Result { +const fn convert_bool(value: i32, ident: &'static str) -> Result { match value { 0 => Ok(false), 1 => Ok(true), @@ -975,7 +975,7 @@ impl BezierCurve<[i32; 4]> { } } impl CurveKind<[i32; 4]> { - fn parse(id: i32, bezier: Option<&BezierCurve<[i32; 4]>>) -> Result { + const fn parse(id: i32, bezier: Option<&BezierCurve<[i32; 4]>>) -> Result { Ok(match id { 0 => CurveKind::Step, 1 => CurveKind::Linear, @@ -1435,7 +1435,7 @@ bitflags! { } impl LayerKind { - pub(crate) fn data_index(&self) -> usize { + pub(crate) const fn data_index(&self) -> usize { use LayerKind::*; match self { Game | Tiles => 14, @@ -1792,14 +1792,15 @@ impl QuadsLayer { .collect::>()?; let image = convert_opt_index(item.item_data[6], "image")?; - let mut name = String::new(); - if version >= 2 { + + let name = if version >= 2 { item.require_length(10)?; item.require_max_length(10)?; - name = parse_i32_string(&item.item_data[7..10])?; + parse_i32_string(&item.item_data[7..10])? } else { item.require_max_length(7)?; - } + String::new() + }; Ok(Layer::Quads(QuadsLayer { name, diff --git a/twmap/tests/datafile.rs b/twmap/tests/datafile.rs index bfe9b08..e53344f 100644 --- a/twmap/tests/datafile.rs +++ b/twmap/tests/datafile.rs @@ -10,7 +10,7 @@ use std::io::Read; fn get_data_items(df: &Datafile) -> Vec> { let mut data_items = Vec::new(); for (data, size) in df.data_items.iter() { - data_items.push(decompress(data, *size as usize).unwrap()); + data_items.push(decompress(data, *size).unwrap()); } data_items } diff --git a/twmap/tests/map.rs b/twmap/tests/map.rs index 1dce885..59397fa 100644 --- a/twmap/tests/map.rs +++ b/twmap/tests/map.rs @@ -105,10 +105,7 @@ where #[test] fn custom_test_ddnet() { - let tf: Vec = (0..16) - .into_iter() - .map(|n| TileFlags::from_bits(n).unwrap()) - .collect(); + let tf: Vec = (0..16).map(|n| TileFlags::from_bits(n).unwrap()).collect(); let mut map = TwMap { version: Version::DDNet06, @@ -410,10 +407,7 @@ fn custom_test_ddnet() { #[test] fn custom_test_teeworlds07() { - let tf: Vec = (0..16) - .into_iter() - .map(|n| TileFlags::from_bits(n).unwrap()) - .collect(); + let tf: Vec = (0..16).map(|n| TileFlags::from_bits(n).unwrap()).collect(); let mut map = TwMap { version: Version::Teeworlds07, -- GitLab