diff --git a/Cargo.lock b/Cargo.lock index e9a8d00..bd5e5b9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,36 +1,36 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" -version = "0.24.2" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" dependencies = [ "gimli", ] [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" dependencies = [ "addr2line", "cfg-if", @@ -38,7 +38,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets", + "windows-link", ] [[package]] @@ -50,45 +50,26 @@ dependencies = [ "backtrace", ] -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "beef" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" - [[package]] name = "bitflags" -version = "1.3.2" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "console" -version = "0.15.10" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" +checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" dependencies = [ "encode_unicode", "libc", - "once_cell", "windows-sys", ] @@ -100,14 +81,20 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "errno" -version = "0.3.10" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", "windows-sys", ] +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + [[package]] name = "fnv" version = "1.0.7" @@ -115,24 +102,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "gimli" -version = "0.31.1" +name = "getrandom" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi", +] + +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "insta" -version = "1.42.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c1b125e30d93896b365e156c33dadfffab45ee8400afcbba4752f59de08a86" +checksum = "86f0f8fee8c926415c58d6ae43a08523a26faccb2323f5e6b644fe7dd4ef6b82" dependencies = [ "console", - "linked-hash-map", "once_cell", - "pin-project", - "ron", "serde", "similar", + "tempfile", ] [[package]] @@ -141,74 +137,61 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - [[package]] name = "libc" -version = "0.2.169" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "linux-raw-sys" -version = "0.4.15" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "logos" -version = "0.14.4" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7251356ef8cb7aec833ddf598c6cb24d17b689d20b993f9d11a3d764e34e6458" +checksum = "eb2c55a318a87600ea870ff8c2012148b44bf18b74fad48d0f835c38c7d07c5f" dependencies = [ "logos-derive", ] [[package]] name = "logos-codegen" -version = "0.14.4" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f80069600c0d66734f5ff52cc42f2dabd6b29d205f333d61fd7832e9e9963f" +checksum = "58b3ffaa284e1350d017a57d04ada118c4583cf260c8fb01e0fe28a2e9cf8970" dependencies = [ - "beef", "fnv", - "lazy_static", "proc-macro2", "quote", + "regex-automata", "regex-syntax", "syn", ] [[package]] name = "logos-derive" -version = "0.14.4" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24fb722b06a9dc12adb0963ed585f19fc61dc5413e6a9be9422ef92c091e731d" +checksum = "52d3a9855747c17eaf4383823f135220716ab49bea5fbea7dd42cc9a92f8aa31" dependencies = [ "logos-codegen", ] [[package]] name = "memchr" -version = "2.7.4" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "miette" -version = "7.5.0" +version = "7.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a955165f87b37fd1862df2a59547ac542c77ef6d17c666f619d1ad22dd89484" +checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" dependencies = [ "backtrace", "backtrace-ext", @@ -220,15 +203,14 @@ dependencies = [ "supports-unicode", "terminal_size", "textwrap", - "thiserror 1.0.69", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] name = "miette-derive" -version = "7.5.0" +version = "7.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf45bf44ab49be92fd1227a3be6fc6f617f1a337c06af54981048574d8783147" +checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" dependencies = [ "proc-macro2", "quote", @@ -237,39 +219,39 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.4" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "object" -version = "0.36.7" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "owo-colors" -version = "4.1.0" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" +checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" [[package]] name = "parse-display" -version = "0.9.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" +checksum = "e78deb158fb1d73b29efb4b7e9b9860b78059c670de06bd28df8d0b458ded0eb" dependencies = [ "parse-display-derive", "regex", @@ -278,9 +260,9 @@ dependencies = [ [[package]] name = "parse-display-derive" -version = "0.9.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae7800a4c974efd12df917266338e79a7a74415173caf7e70aa0a0707345281" +checksum = "8e95a50d1084dab562913062c4c34bb204b68fc6ec38a1395909ff5aaaf4f10a" dependencies = [ "proc-macro2", "quote", @@ -290,49 +272,35 @@ dependencies = [ "syn", ] -[[package]] -name = "pin-project" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" dependencies = [ "proc-macro2", ] [[package]] -name = "regex" -version = "1.11.1" +name = "r-efi" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "regex" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0e75113e14dc5acb068cd0786884f214f1312650a3d36d269f5c4f3cdee8a2" dependencies = [ "aho-corasick", "memchr", @@ -342,9 +310,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "1f388202e4b80542a0921078cc23b6333bcf1409c1e3f86404cae4766a6131db" dependencies = [ "aho-corasick", "memchr", @@ -353,34 +321,23 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "ron" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a" -dependencies = [ - "base64", - "bitflags 1.3.2", - "serde", -] +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "b74b56ffa8bb2830709a538c2cbcae9aa062db0d2a42563bfb09bdaae44020eb" [[package]] name = "rustix" -version = "0.38.44" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.8.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -398,18 +355,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.217" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -418,9 +385,9 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", @@ -467,9 +434,9 @@ dependencies = [ [[package]] name = "supports-hyperlinks" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b" +checksum = "e396b6523b11ccb83120b115a0b7366de372751aa6edf19844dfb13a6af97e91" [[package]] name = "supports-unicode" @@ -479,9 +446,9 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" [[package]] name = "syn" -version = "2.0.98" +version = "2.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" dependencies = [ "proc-macro2", "quote", @@ -489,10 +456,23 @@ dependencies = [ ] [[package]] -name = "terminal_size" -version = "0.4.1" +name = "tempfile" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom", + "once_cell", + "rustix", + "windows-sys", +] + +[[package]] +name = "terminal_size" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", "windows-sys", @@ -533,48 +513,28 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" dependencies = [ "unicode-linebreak", - "unicode-width", + "unicode-width 0.2.2", ] [[package]] name = "thiserror" -version = "1.0.69" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" -dependencies = [ - "thiserror-impl 2.0.11", + "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.69" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -583,9 +543,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-linebreak" @@ -600,28 +560,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] -name = "vdf-reader" -version = "0.3.0" +name = "unicode-width" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c92e6cbd97e3aefd917c537080b085a4cb926461dddf98daab9a370972ffdfe" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "vdf-reader" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33dd6251fb103f965f549c96a7cb040095a13e1fc1506ea0ef8a2047457f88d6" dependencies = [ "logos", "miette", "parse-display", - "serde", - "thiserror 2.0.11", + "serde_core", + "thiserror", ] [[package]] name = "vmt-parser" -version = "0.2.0" +version = "0.2.1" dependencies = [ "insta", "miette", "serde", "serde_repr", "test-case", - "thiserror 2.0.11", + "thiserror", "vdf-reader", "walkdir", ] @@ -638,82 +604,24 @@ dependencies = [ [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ "windows-sys", ] +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-sys" -version = "0.59.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-targets", + "windows-link", ] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" diff --git a/Cargo.toml b/Cargo.toml index 1e9005e..ad752f5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,21 +1,21 @@ [package] name = "vmt-parser" -version = "0.2.0" -edition = "2021" +version = "0.2.1" +edition = "2024" description = "Rust parser for valve vmt files." license = "MIT" repository = "https://codeberg.org/icewind/vmt-parser" -rust-version = "1.70.0" +rust-version = "1.85.0" [dependencies] -thiserror = "2.0.11" -miette = "7.5.0" -vdf-reader = "0.3.0" -serde = { version = "1.0.217", features = ["derive"] } -serde_repr = "0.1.19" +thiserror = "2.0.18" +miette = "7.6.0" +vdf-reader = "0.3.4" +serde = { version = "1.0.228", features = ["derive"] } +serde_repr = "0.1.20" [dev-dependencies] test-case = "3.3.1" -insta = { version = "1.42.1", features = ["ron"] } -miette = { version = "7.5.0", features = ["fancy"] } +insta = { version = "1.48.0", features = ["json"] } +miette = { version = "7.6.0", features = ["fancy"] } walkdir = "2.5.0" diff --git a/tests/parse.rs b/tests/parse.rs index c8e7ce7..7fb1476 100644 --- a/tests/parse.rs +++ b/tests/parse.rs @@ -24,12 +24,12 @@ fn test_serde(path: &str) { let raw = read_to_string(path).unwrap(); match from_str(&raw) { Ok(result) => { - insta::assert_ron_snapshot!(path, result); + insta::assert_json_snapshot!(path, result); if let Material::Patch(patch) = result { let patched = patch .resolve(|path| read_to_string(path).map_err(LoaderError::from)) .unwrap(); - insta::assert_ron_snapshot!(format!("{}_resolved", path), patched); + insta::assert_json_snapshot!(format!("{}_resolved", path), patched); } } Err(e) => { diff --git a/tests/snapshots/parse__tests__data__blendrocktograss002.vmt.snap b/tests/snapshots/parse__tests__data__blendrocktograss002.vmt.snap index cb01331..f5fdca3 100644 --- a/tests/snapshots/parse__tests__data__blendrocktograss002.vmt.snap +++ b/tests/snapshots/parse__tests__data__blendrocktograss002.vmt.snap @@ -2,35 +2,44 @@ source: tests/parse.rs expression: result --- -worldvertextransition(WorldVertexTransitionMaterial( - r#$basetexture: "cp_mountainlab/nature/rockwall001", - r#$basetexture2: "cp_mountainlab/nature/grass001", - r#$blendmodulatetexture: Some("nature/grass_blendmask"), - r#$decal: false, - r#$detail: None, - r#$surfaceprop: Some("dirt"), - r#$basetexturetransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", - r#$color: Vec3((1.0, 1.0, 1.0)), - r#$decalscale: 1.0, - r#$detailscale: Vec2((4.0, 4.0)), - r#$detailblendfactor: 1.0, - r#$detailblendmode: 1, - r#$modelmaterial: None, - r#$pointsamplemagfilter: false, - r#$seamless_scale: 1.0, - r#$alpha: 1.0, - r#$alphatest: false, - r#$alphatestreference: 1.0, - r#$distancealpha: false, - r#$nocull: false, - r#$translucent: false, - r#$bumpmap: Some("nature/rockwall009_height-ssbump"), - r#$bumpmap2: None, - r#$lightwarptexture: None, - r#$selfillum: false, - r#$ssbump: true, - r#$envmap: None, - r#$phong: 0.0, - r#$nofog: false, - r#$ignorez: false, -)) +{ + "worldvertextransition": { + "$basetexture": "cp_mountainlab/nature/rockwall001", + "$basetexture2": "cp_mountainlab/nature/grass001", + "$blendmodulatetexture": "nature/grass_blendmask", + "$decal": false, + "$detail": null, + "$surfaceprop": "dirt", + "$basetexturetransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", + "$color": [ + 1.0, + 1.0, + 1.0 + ], + "$decalscale": 1.0, + "$detailscale": [ + 4.0, + 4.0 + ], + "$detailblendfactor": 1.0, + "$detailblendmode": 1, + "$modelmaterial": null, + "$pointsamplemagfilter": false, + "$seamless_scale": 1.0, + "$alpha": 1.0, + "$alphatest": false, + "$alphatestreference": 1.0, + "$distancealpha": false, + "$nocull": false, + "$translucent": false, + "$bumpmap": "nature/rockwall009_height-ssbump", + "$bumpmap2": null, + "$lightwarptexture": null, + "$selfillum": false, + "$ssbump": true, + "$envmap": null, + "$phong": 0.0, + "$nofog": false, + "$ignorez": false + } +} diff --git a/tests/snapshots/parse__tests__data__concretefloor003.vmt.snap b/tests/snapshots/parse__tests__data__concretefloor003.vmt.snap index 80a0d5e..c261dd1 100644 --- a/tests/snapshots/parse__tests__data__concretefloor003.vmt.snap +++ b/tests/snapshots/parse__tests__data__concretefloor003.vmt.snap @@ -2,32 +2,41 @@ source: tests/parse.rs expression: result --- -lightmappedgeneric(LightMappedGenericMaterial( - r#$basetexture: "cp_mountainlab/concrete/concretefloor003", - r#$decal: false, - r#$detail: Some("overlays/detail001"), - r#$surfaceprop: None, - r#$basetexturetransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", - r#$color: Vec3((1.0, 1.0, 1.0)), - r#$decalscale: 1.0, - r#$detailscale: Vec2((1.9, 1.9)), - r#$detailblendfactor: 1.0, - r#$detailblendmode: 0, - r#$modelmaterial: None, - r#$pointsamplemagfilter: false, - r#$seamless_scale: 1.0, - r#$alpha: 1.0, - r#$alphatest: false, - r#$alphatestreference: 1.0, - r#$distancealpha: false, - r#$nocull: false, - r#$translucent: false, - r#$bumpmap: Some("concrete/concretefloor007b_height-ssbump"), - r#$lightwarptexture: None, - r#$selfillum: false, - r#$ssbump: true, - r#$envmap: None, - r#$phong: 0.0, - r#$nofog: false, - r#$ignorez: false, -)) +{ + "lightmappedgeneric": { + "$basetexture": "cp_mountainlab/concrete/concretefloor003", + "$decal": false, + "$detail": "overlays/detail001", + "$surfaceprop": null, + "$basetexturetransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", + "$color": [ + 1.0, + 1.0, + 1.0 + ], + "$decalscale": 1.0, + "$detailscale": [ + 1.9, + 1.9 + ], + "$detailblendfactor": 1.0, + "$detailblendmode": 0, + "$modelmaterial": null, + "$pointsamplemagfilter": false, + "$seamless_scale": 1.0, + "$alpha": 1.0, + "$alphatest": false, + "$alphatestreference": 1.0, + "$distancealpha": false, + "$nocull": false, + "$translucent": false, + "$bumpmap": "concrete/concretefloor007b_height-ssbump", + "$lightwarptexture": null, + "$selfillum": false, + "$ssbump": true, + "$envmap": null, + "$phong": 0.0, + "$nofog": false, + "$ignorez": false + } +} diff --git a/tests/snapshots/parse__tests__data__handrail128_skin2.vmt.snap b/tests/snapshots/parse__tests__data__handrail128_skin2.vmt.snap index 2f48ab6..76e187a 100644 --- a/tests/snapshots/parse__tests__data__handrail128_skin2.vmt.snap +++ b/tests/snapshots/parse__tests__data__handrail128_skin2.vmt.snap @@ -2,31 +2,44 @@ source: tests/parse.rs expression: result --- -vertexlitgeneric(VertexLitGenericMaterial( - r#$basetexture: Some("models/props_trainyard/handrail128_skin2"), - r#$detail: None, - r#$decaltexture: None, - r#$color2: Vec3((1.0, 1.0, 1.0)), - r#$basetexturetransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", - r#$color: Vec3((1.0, 1.0, 1.0)), - r#$decalscale: Vec2((4.0, 4.0)), - r#$detailblendfactor: 1.0, - r#$detailblendmode: 1, - r#$modelmaterial: None, - r#$pointsamplemagfilter: false, - r#$seamless_scale: 1.0, - r#$alpha: 1.0, - r#$alphatest: false, - r#$alphatestreference: 1.0, - r#$distancealpha: false, - r#$nocull: false, - r#$translucent: false, - r#$bumpmap: None, - r#$lightwarptexture: None, - r#$selfillum: false, - r#$ssbump: false, - r#$envmap: None, - r#$phong: 0.0, - r#$nofog: false, - r#$ignorez: false, -)) +{ + "vertexlitgeneric": { + "$basetexture": "models/props_trainyard/handrail128_skin2", + "$detail": null, + "$decaltexture": null, + "$color2": [ + 1.0, + 1.0, + 1.0 + ], + "$basetexturetransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", + "$color": [ + 1.0, + 1.0, + 1.0 + ], + "$decalscale": [ + 4.0, + 4.0 + ], + "$detailblendfactor": 1.0, + "$detailblendmode": 1, + "$modelmaterial": null, + "$pointsamplemagfilter": false, + "$seamless_scale": 1.0, + "$alpha": 1.0, + "$alphatest": false, + "$alphatestreference": 1.0, + "$distancealpha": false, + "$nocull": false, + "$translucent": false, + "$bumpmap": null, + "$lightwarptexture": null, + "$selfillum": false, + "$ssbump": false, + "$envmap": null, + "$phong": 0.0, + "$nofog": false, + "$ignorez": false + } +} diff --git a/tests/snapshots/parse__tests__data__mvm_backpack.vmt.snap b/tests/snapshots/parse__tests__data__mvm_backpack.vmt.snap index b2938cb..40bbed1 100644 --- a/tests/snapshots/parse__tests__data__mvm_backpack.vmt.snap +++ b/tests/snapshots/parse__tests__data__mvm_backpack.vmt.snap @@ -2,20 +2,26 @@ source: tests/parse.rs expression: result --- -unlitgeneric(UnlitGenericMaterial( - r#$basetexture: Some("vgui/pve/mvm_backpack"), - r#$surfaceprop: None, - r#$model: false, - r#$color: Vec3((1.0, 1.0, 1.0)), - r#$alpha: 1.0, - r#$alphatest: false, - r#$alphatestreference: 1.0, - r#$nocull: false, - r#$translucent: true, - r#$bumpmap: None, - r#$ignorez: true, - r#$nofog: false, - r#$receiveflashlight: false, - singlepassflashlight: false, - r#$no_fullbright: true, -)) +{ + "unlitgeneric": { + "$basetexture": "vgui/pve/mvm_backpack", + "$surfaceprop": null, + "$model": false, + "$color": [ + 1.0, + 1.0, + 1.0 + ], + "$alpha": 1.0, + "$alphatest": false, + "$alphatestreference": 1.0, + "$nocull": false, + "$translucent": true, + "$bumpmap": null, + "$ignorez": true, + "$nofog": false, + "$receiveflashlight": false, + "singlepassflashlight": false, + "$no_fullbright": true + } +} diff --git a/tests/snapshots/parse__tests__data__patch.vmt.snap b/tests/snapshots/parse__tests__data__patch.vmt.snap index 804ae0a..896c228 100644 --- a/tests/snapshots/parse__tests__data__patch.vmt.snap +++ b/tests/snapshots/parse__tests__data__patch.vmt.snap @@ -2,9 +2,11 @@ source: tests/parse.rs expression: result --- -patch(PatchMaterial( - include: "tests/data/concretefloor003.vmt", - replace: { - "$ssbump": "0", - }, -)) +{ + "patch": { + "include": "tests/data/concretefloor003.vmt", + "replace": { + "$ssbump": "0" + } + } +} diff --git a/tests/snapshots/parse__tests__data__patch.vmt_resolved.snap b/tests/snapshots/parse__tests__data__patch.vmt_resolved.snap index 95568d5..0c91e1c 100644 --- a/tests/snapshots/parse__tests__data__patch.vmt_resolved.snap +++ b/tests/snapshots/parse__tests__data__patch.vmt_resolved.snap @@ -2,32 +2,41 @@ source: tests/parse.rs expression: patched --- -lightmappedgeneric(LightMappedGenericMaterial( - r#$basetexture: "cp_mountainlab/concrete/concretefloor003", - r#$decal: false, - r#$detail: Some("overlays/detail001"), - r#$surfaceprop: None, - r#$basetexturetransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", - r#$color: Vec3((1.0, 1.0, 1.0)), - r#$decalscale: 1.0, - r#$detailscale: Vec2((1.9, 1.9)), - r#$detailblendfactor: 1.0, - r#$detailblendmode: 0, - r#$modelmaterial: None, - r#$pointsamplemagfilter: false, - r#$seamless_scale: 1.0, - r#$alpha: 1.0, - r#$alphatest: false, - r#$alphatestreference: 1.0, - r#$distancealpha: false, - r#$nocull: false, - r#$translucent: false, - r#$bumpmap: Some("concrete/concretefloor007b_height-ssbump"), - r#$lightwarptexture: None, - r#$selfillum: false, - r#$ssbump: false, - r#$envmap: None, - r#$phong: 0.0, - r#$nofog: false, - r#$ignorez: false, -)) +{ + "lightmappedgeneric": { + "$basetexture": "cp_mountainlab/concrete/concretefloor003", + "$decal": false, + "$detail": "overlays/detail001", + "$surfaceprop": null, + "$basetexturetransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", + "$color": [ + 1.0, + 1.0, + 1.0 + ], + "$decalscale": 1.0, + "$detailscale": [ + 1.9, + 1.9 + ], + "$detailblendfactor": 1.0, + "$detailblendmode": 0, + "$modelmaterial": null, + "$pointsamplemagfilter": false, + "$seamless_scale": 1.0, + "$alpha": 1.0, + "$alphatest": false, + "$alphatestreference": 1.0, + "$distancealpha": false, + "$nocull": false, + "$translucent": false, + "$bumpmap": "concrete/concretefloor007b_height-ssbump", + "$lightwarptexture": null, + "$selfillum": false, + "$ssbump": false, + "$envmap": null, + "$phong": 0.0, + "$nofog": false, + "$ignorez": false + } +} diff --git a/tests/snapshots/parse__tests__data__shot2_subrect.vmt.snap b/tests/snapshots/parse__tests__data__shot2_subrect.vmt.snap index 1cdadfb..7d3048c 100644 --- a/tests/snapshots/parse__tests__data__shot2_subrect.vmt.snap +++ b/tests/snapshots/parse__tests__data__shot2_subrect.vmt.snap @@ -2,8 +2,16 @@ source: tests/parse.rs expression: result --- -subrect(SubRectMaterial( - r#$material: "decals/decals_mod2x", - r#$pos: Vec2((64.0, 0.0)), - r#$size: Vec2((64.0, 64.0)), -)) +{ + "subrect": { + "$material": "decals/decals_mod2x", + "$pos": [ + 64.0, + 0.0 + ], + "$size": [ + 64.0, + 64.0 + ] + } +} diff --git a/tests/snapshots/parse__tests__data__water_murky.vmt.snap b/tests/snapshots/parse__tests__data__water_murky.vmt.snap index 3933cc8..390e176 100644 --- a/tests/snapshots/parse__tests__data__water_murky.vmt.snap +++ b/tests/snapshots/parse__tests__data__water_murky.vmt.snap @@ -2,20 +2,26 @@ source: tests/parse.rs expression: result --- -water(WaterMaterial( - r#$basetexture: Some("swamp/water/water_murky"), - r#$abovewater: true, - r#$bottommaterial: Some("swamp/water/water_murky_beneath.vmt"), - r#$underwaterover: None, - r#$bumpmap: None, - r#$normalmap: Some("water/tfwater001_normal"), - r#$dudvframe: 0, - r#$bumpframe: 0, - r#$bumptransform: "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", - r#$flashlighttint: 1.0, - r#$fogenable: true, - r#$fogcolor: Vec3((35.0, 32.0, 20.0)), - r#$fogstart: 0.0, - r#$fogend: 170.0, - r#$lightmapwaterfog: false, -)) +{ + "water": { + "$basetexture": "swamp/water/water_murky", + "$abovewater": true, + "$bottommaterial": "swamp/water/water_murky_beneath.vmt", + "$underwaterover": null, + "$bumpmap": null, + "$normalmap": "water/tfwater001_normal", + "$dudvframe": 0, + "$bumpframe": 0, + "$bumptransform": "center 0.5 0.5 scale 1 1 rotate 0 translate 0 0", + "$flashlighttint": 1.0, + "$fogenable": true, + "$fogcolor": [ + 35.0, + 32.0, + 20.0 + ], + "$fogstart": 0.0, + "$fogend": 170.0, + "$lightmapwaterfog": false + } +}